枚举中的DescriptionAttribute
是否可以包含TextBox
个文本?我问,因为我有一个包含大量TextBox
es的文件,我希望将它们的内容与我拥有的值相匹配。我怀疑我能做到这一点,但我完全不确定。
即
[DescriptionAttribute(textBox1.Text)]
a,
答案 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)
没有。属性在编译时定义,必须是常量值。