using System; class Program { static void Output(Func<double> f) { Console.WriteLine("Output by double: {0}",f()); } // 新規追加メソッド static void Output(Func<int> f) { Console.WriteLine("Output by int: {0}", f()); } static void Main(string[] args) { Output(() => 123); // 出力:Output by int: 123 } } 見てのとおり、呼び出しのラムダ式は一切変更していないが、別のメソッドを呼び出すようになった。これは、ラムダ式がオーバーロードの解決に影響を与えているためである。ラムダ式が持つ型が、オーバーロードの解決メカニズムに影

