匿名メソッドを var に代入できない理由
提供されたコードでは、匿名メソッドの var 変数への代入がコンパイルに失敗します。デリゲート型の推論には曖昧さがあるため。
匿名メソッドを割り当てることができるFunc
さらに、コンパイラがデリゲート型の場合、不一致が発生する可能性があります。たとえば、var 割り当てが正常にコンパイルされたと仮定すると、次のコードは意味を失います。
var comparer = delegate(string arg1, string arg2, string arg3, string arg4, string arg5) { return false; };
これは、Func<> が原因です。 .NET 3.5 では最大 4 つの引数しか許可されないため、型推論は実際の動作と一致しません。
この曖昧さを解決するには、匿名メソッドを変数に割り当てるときにデリゲート型を明示的に指定する必要があります。これにより、コードの明確さと一貫性が確保されます。
以上がC# で匿名メソッドを `var` に直接割り当てることができないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。