C#中的DefaultValue属性

时间:2011-01-17 13:26:35

标签: c# attributes

我想在DefaultValue属性上使用来定义我在App中编写的自定义类的默认值。该类在他的约束器中给出一个字符串。 我写了以下内容:

[DefaultValue(Type.GetType("MyClass"),"hello world")] 

但是当我尝试运行此应用程序时。我给出错误:

  

“属性参数必须是a   常量表达式,表达式   或者数组创建表达式   属性参数类型“。

任何人都可以解释我的问题吗?

3 个答案:

答案 0 :(得分:6)

您正在使用Type.GetType("MyClass")typeof(MyClass)

答案 1 :(得分:2)

我怀疑它是Type.GetType(“MyClass”);

你可以尝试使用typeof(MyClass),传递类型而不是字符串吗?

答案 2 :(得分:1)

Type.GetType()是一种方法(即不是常量表达式),正如其他人所说的那样,使用typeof

[DefaultValue(typeof(MyClass),"Convertible String")]

修改:要启用将字符串转换为自定义类,您需要将TypeConverter与其关联,请参阅this documentation的示例部分以了解如何这样做。