C# - 有可能吗? - 带有TextBox文本的[DescriptionAttribute()]

时间:2011-11-30 17:39:36

标签: c# enums custom-attributes

枚举中的DescriptionAttribute是否可以包含TextBox个文本?我问,因为我有一个包含大量TextBox es的文件,我希望将它们的内容与我拥有的值相匹配。我怀疑我能做到这一点,但我完全不确定。

[DescriptionAttribute(textBox1.Text)]
a,

3 个答案:

答案 0 :(得分:5)

不,属性需要编译时间常量作为参数。

C#规范说:

  

如果以下所有语句都为真,则表达式E是attribute-argument-expression:

     
      
  • E的类型是属性参数类型(第24.1.3节)。
  •   
  • 在编译时,E的值可以解析为以下之一:   
        
    • 一个恒定值。
    •   
    • typeof-expression(§14.5.11),指定非泛型类型,闭合构造类型(第25.5.2节),或者   未绑定的泛型类型(第25.5节)。
    •   
    • 属性 - 参数表达式的一维数组。
    •   
  •   

答案 1 :(得分:2)

不,这是不可能的,因为属性是可用的元数据的一部分,即嵌入在您正在编译的 .dll / .exe中。

在编译时,您不能引用仅在运行时存在的值。

如果您想要这样的远程内容,您必须自己构建它,即创建一个类,将Enum的字段映射到运行时的文本框值

答案 2 :(得分:1)

没有。属性在编译时定义,必须是常量值。