ホームページ > バックエンド開発 > C++ > .NET で匿名型にキャストするにはどうすればよいですか?また、キャストを避けるべきなのはどのような場合ですか?

.NET で匿名型にキャストするにはどうすればよいですか?また、キャストを避けるべきなのはどのような場合ですか?

Mary-Kate Olsen
リリース: 2025-01-06 04:43:46
オリジナル
618 人が閲覧しました

How Can I Cast to Anonymous Types in .NET, and When Should I Avoid Doing So?

匿名型へのキャスト

.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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート