為什麼匿名方法不能賦值給var
提供的程式碼中,匿名方法賦值給var變數無法透過編譯由於推斷委託類型的模糊性。
可以將匿名方法指派給委託類型,例如 Func
此外,即使編譯器可以推斷出委託類型,這可能會導致不一致。例如,假設var 賦值編譯成功,則以下程式碼將不再有意義:
var comparer = delegate(string arg1, string arg2, string arg3, string arg4, string arg5) { return false; };
這是因為Func在.NET 3.5 中最多只允許四個參數,因此類型推斷與實際行為不匹配。
為了解決這種歧義,需要在將匿名方法指派給變數時明確指定委託類型。這確保了程式碼的清晰度和一致性。
以上是為什麼不能將匿名方法直接賦值給 C# 中的 var ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!