.NET では、匿名型はコンパイル時に生成される不変の値型です。これらは、新しいクラスの作成を保証しないデータを表すために使用できます。ただし、匿名型へのキャストと匿名型からのキャストは難しい場合があります。
匿名型へのキャストが必要となる状況の 1 つは、匿名型を Windows フォームのデータ バインディングのデータ ソースとして使用する場合です。 BindingSource の Current プロパティを匿名型にキャストしようとすると、エラーが発生します。これは、Current プロパティがオブジェクト参照を返し、匿名型に直接キャストできないためです。
この制限を克服するには、コンパイラを使用して正しい型を推論するトリックを使用できます。正しい匿名型のダミー オブジェクトを作成し、それを Current 値に割り当てることで、コンパイラをだましてキャストの正しい型を推測させることができます。
例:
var a = new { Id = 1, Name = "Bob" }; var b = (typeof(a) as DynamicObject).GetObject();
この例では、DynamicObject クラスの GetObject() メソッドを使用して、匿名型のインスタンスを作成します。 typeof(a) 式は、匿名型の型を推論するために使用されます。
このトリックを使用して匿名型にキャストすることはできますが、一般に、匿名型を必要とするシナリオで匿名型を使用することは推奨されません。プログラム内で引き継がれます。代わりに、明確さと保守性を向上させるために実際の型を使用することをお勧めします。
以上が.NET で匿名型にキャストするにはどうすればよいですか?また、キャストを避けるべきなのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。