Action<string> method = filename =>
{
if (filename == null) Console.WriteLine("Hello!");
else System.IO.File.WriteAllText(filename, "Hello!");
};
Action<string> method = filename =>
filename == null
? Console.WriteLine("Hello!")
: System.IO.File.WriteAllText(filename, "Hello!");
編譯錯誤:
error CS0201: 僅 assignment/call/increment/decrement/new 可作語句
error CS0173: 無法確定條件運算式型別,void 無隱含轉換
Console.WriteLine 回傳 void,File.WriteAllText 回傳 void。void 無法作為運算式型別參與型別推斷,導致整個條件運算式無型別。這也揭示 void 回傳的運算式本質上難以組合,避免使用反而促使更清晰的語句本體寫法。