実行時に C# オブジェクトにプロパティを動的に追加するにはどうすればよいですか?
Dec 29, 2024 pm 10:34 PM実行時に C# プロパティを動的に追加する
この記事では、これまでの議論を発展させて、実行時にオブジェクトにプロパティを動的に追加するための別のアプローチを検討します。コレクションに頼ったり、 Dictionaries.
ExpandoObject
ExpandoObject は、メンバーを動的に追加および削除する便利な方法を提供します。 .NET の動的バインディングのサポートを活用し、標準構文を使用してプロパティにアクセスして設定できるようにします。
dynamic dynObject = new ExpandoObject(); dynObject.SomeDynamicProperty = "Hello!"; dynObject.SomeDynamicAction = (msg) => { Console.WriteLine(msg); }; dynObject.SomeDynamicAction(dynObject.SomeDynamicProperty);
カスタマイズされた動的オブジェクト
より具体的なシナリオについては、独自のカスタム DynamicObject 実装を作成できます。これには、DynamicObject から継承するクラスの定義、メンバー アクセスの処理、およびオーバーライドされたメソッドでの設定が含まれます。
public static dynamic GetDynamicObject(Dictionary<string, object> properties) { return new MyDynObject(properties); } public sealed class MyDynObject : DynamicObject { private readonly Dictionary<string, object> _properties; public MyDynObject(Dictionary<string, object> properties) { _properties = properties; } // Overridden methods for member access and setting }
使用法:
var dyn = GetDynamicObject(new Dictionary<string, object>() { { "prop1", 12 }, }); Console.WriteLine(dyn.prop1); dyn.prop1 = 150;
考慮事項:
ExpandoObject とカスタム DynamicObject の間実装は柔軟性を提供しますが、潜在的な落とし穴も伴います。パフォーマンスへの影響、開発者のエクスペリエンス、実行時例外の可能性を考慮して、慎重に使用してください。
以上が実行時に C# オブジェクトにプロパティを動的に追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか?

STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか?
