Foo*_*ife 33 c# custom-attributes
这是我的自定义属性和我正在使用它的类:
[MethodAttribute(new []{new MethodAttributeMembers(), new MethodAttributeMembers()})]
public class JN_Country
{
}
public class MethodAttribute : Attribute
{
public MethodAttributeMembers[] MethodAttributeMembers { get; set; }
public MethodAttribute(MethodAttributeMembers[] methodAttributeMemberses)
{
MethodAttributeMembers = methodAttributeMemberses;
}
}
public class MethodAttributeMembers
{
public string MethodName { get; set; }
public string Method { get; set; }
public string MethodTitle { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
语法错误,显示在上面的第一行:
属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式
为什么会出现此错误?
Gra*_*ICA 37
这补充了西蒙已经给出的信息.
我在这里找到了一些文档:Attributes Tutorial.(它在顶部显示Visual Studio .NET 2003,但它仍然适用.)
属性参数限制为以下类型的常量值:
- 简单类型(bool,byte,char,short,int,long,float和double)
- 串
- 系统类型
- 枚举
- object(对象类型的属性参数的参数必须是上述类型之一的常量值.)
- 任何上述类型的一维数组 (重点由我添加)
最后一个要点解释了您的语法错误.您已经定义了一维数组,但它应该只是原始类型,字符串等,如前面的项目符号所列.