0

我有以下问题:

我正在使用动态对象( ExpandoObject ),我想更改运行时的属性。线索是什么......我希望我的属性是双精度的,因为我正在使用的用户控件如果它的类型不是双精度,则无法识别该属性是双精度的。据我所知,动态对象的属性的已知类型在这种情况下应该是双倍的,但它不适用于此控件。那么当我声明动态对象的新属性来告诉它是双精度时,有什么明确的方法吗?

提前致谢, 杨

4

1 回答 1

1

在 的情况下ExpandoObject,只需分配一个 double

    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 回答