我有以下问题:
我正在使用动态对象( ExpandoObject ),我想更改运行时的属性。线索是什么......我希望我的属性是双精度的,因为我正在使用的用户控件如果它的类型不是双精度,则无法识别该属性是双精度的。据我所知,动态对象的属性的已知类型在这种情况下应该是双倍的,但它不适用于此控件。那么当我声明动态对象的新属性来告诉它是双精度时,有什么明确的方法吗?
提前致谢, 杨
在 的情况下ExpandoObject
,只需分配一个 double:
dynamic obj = new ExpandoObject();
obj.Foo = 123.45;
Console.WriteLine(obj.Foo.GetType()); // System.Double
但是,我会说dynamic
对象可能不是 UI 绑定(到用户控件)的好选择,因为它们没有强大的属性模型。事实上,大多数 UI 绑定甚至都不是最新的dynamic
,并且会尝试使用System.ComponentModel
(不知道dynamic
)。