0

動的クラスメンバーを使用することは可能ですか?例えば

class blarg
{
public dynamic ctx = new ExpandoObject();
}

blargをDynamicObject?から継承(および実装)させることもありません。

4

2 に答える 2

2

はい。dynamic任意のクラス内でフィールドまたはプロパティを作成できます。

からの継承は、クラス自体を動的にしたい場合にDynamicObjectのみ必要です(技術的には、を実装する必要がありますがIDynamicMetaObjectProvider、これは通常、を介して行われます)。DynamicObject

于 2013-01-29T20:01:49.087 に答える
0

固定の継承構造はありません。第一に、dynamicとにかくリフレクション/メタプログラミングを使用できるので、メンバーと通常のクラスをアタッチするだけで機能しますが、新しいメンバーなどを追加することはできません。第二に、あなたがする必要がある「すべて」完全なサポートdynamicは実装ですIDynamicMetaObjectProvider-何かを継承しません。「すべて」は引用符で囲まれています。これは簡単ではないためです。あなたがちょうどプロパティバッグが欲しい場合のように、DynamicObjectあなたのために重い物を持ち上げるために存在します。ExpandoObject

ただし、呼び出し元は(を使用しているため)特定のタイプにバインドされていないためdynamic、率直に言って、から継承することは大きな問題ではありませんDynamicObject

于 2013-01-29T20:05:00.807 に答える