我想弄清楚匿名函數的C#語法,而且對我來說沒有任何意義。爲什麼這是有效的匿名函數沒有輸入參數
Func<string, string> f = x => { return "Hello, world!"; };
但這不是?
Func<string> g = { return "Hello, world!"; };
我想弄清楚匿名函數的C#語法,而且對我來說沒有任何意義。爲什麼這是有效的匿名函數沒有輸入參數
Func<string, string> f = x => { return "Hello, world!"; };
但這不是?
Func<string> g = { return "Hello, world!"; };
第二個仍然需要lambda語法:
Func<string> g =() => { return "Hello, world!"; };
在第一個,你有效地寫着:
Func<string, string> f = (x) => { return "Hello, world!"; };
但是,在定義時,C#會讓你離開關()
一個lambda如果只有一個參數,讓你寫x =>
來代替。如果沒有參數,則必須包含()
。
這C#語言規範的第7.15指定:
在具有單個,隱式類型參數的匿名函數,括號可以從參數列表被省略。換句話說,形式
(PARAM)=>的匿名函數EXPR
可以縮寫爲
PARAM => EXPR
'Func鍵'(這是他的第二個例子是使用)是不帶任何參數,並返回一個字符串的函數。 –
Servy
他正在使用:http://msdn.microsoft.com/en-us/library/bb534960.aspx –