0

私は次の問題を抱えています:

ランタイムを変更したいプロパティを持つ動的オブジェクト(ExpandoObject)を使用しています。手がかりは何ですか...私が使用しているユーザーコントロールは、タイプがdoubleでない場合、プロパティがdoubleであることを識別できないため、プロパティをdoubleにします。私が知っているように、動的オブジェクトのプロパティの既知のタイプがあり、この場合は2倍にする必要がありますが、このコントロールでは機能しません。それで、動的オブジェクトの新しいプロパティを宣言して、それがdoubleであることを伝えるとき、明示的な方法はありますか?

よろしくお願いします、ヨアン

4

1 に答える 1

1

の場合は、 double を割り当てるExpandoObjectだけです:

    dynamic obj = new ExpandoObject();
    obj.Foo = 123.45;
    Console.WriteLine(obj.Foo.GetType()); // System.Double

ただし、dynamicオブジェクトは強力なプロパティ モデルを持たないため、(ユーザー コントロールへの) UI バインディングにはおそらく適していません。実際、ほとんどの UI バインディングは でさえ最新ではなくdynamic、使用しようとしますSystem.ComponentModel(これは について知りませんdynamic)。

于 2012-06-07T09:24:35.707 に答える