型推論
無名関数の型推論においては、複雑な状況が発生する。
C#の例を以下に示す。
SomeMethod(OneParamAction action) の行を有効にすると、Mainメソッドの4行目の型推論が効かなくなる。 4行目の匿名関数は引数リストを省略できるため、1引数、2引数のどちらのデリゲート型か曖昧になる。
SomeMethod(TwoParamAction action) の行を有効にすると、Mainメソッドの2行目以外の型推論が効かなくなる。 1行目のラムダは、2引数で値を返さない複数のデリゲート型がある場合、曖昧となる。 3行目のラムダは、代入式の左辺にあるoはstringを格納できる型でなければならないが、一方で右辺のoとeは暗黙にToString()が呼び出されるため、いずれの型であってもよく、TwoStringAction TwoParamActionの間で曖昧となる。