c#dynamic
の拡張メソッドと
c#でdynamic
オブジェクトを使用して拡張メソッドを使用すると、ランタイムエラーにつながる可能性があります。 これを例で説明しましょう:
List<int> list = new List<int>() { 5, 56, 2, 4, 63, 2 }; Console.WriteLine(list.First());
このコードは完全に機能します。 ただし、これを試してみると:
dynamic dList = list; Console.WriteLine(dList.First());
a RuntimeBinderException
がスローされます。 これは、コンパイラとランタイムが拡張メソッドと動的オブジェクトを処理する方法のために発生します。
ディレクティブを考慮して、コードの範囲内で利用可能なすべての静的クラスを調べることにより、拡張メソッドを検索します。 これにより、using
。
First()
System.Linq
オブジェクトを使用すると、ランタイムには、名前空間と
以上がC#の動的オブジェクトで拡張メソッドが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。