C# 从属性派生的类上具有变量参数的构造函数不起作用
我想在我的C# 从属性派生的类上具有变量参数的构造函数不起作用,c#,.net-3.5,attributes,C#,.net 3.5,Attributes,我想在我的Enum值中存储额外的信息,因此产生了属性。因为我希望单个属性携带1..n字符串,所以我尝试让属性构造函数接受变量参数。像这样: [AttributeUsage(AttributeTargets.Enum, AllowMultiple = false, Inherited = false)] public class FileTypeAttribute : Attribute { public readonly string[] Extensions; FileTyp
Enum
值中存储额外的信息,因此产生了属性。因为我希望单个属性携带1..n字符串
,所以我尝试让属性构造函数接受变量参数。像这样:
[AttributeUsage(AttributeTargets.Enum, AllowMultiple = false, Inherited = false)]
public class FileTypeAttribute : Attribute
{
public readonly string[] Extensions;
FileTypeAttribute(params string[] extensions)
{
this.Extensions = extensions;
}
}
我的问题是,当我现在试图使用我的属性时,我的编译器会抱怨并留下以下错误消息,我真的不明白:
public enum EFileType
{
[FileTypeAttribute("txt")]
TEXTFILE,
[FileTypeAttribute("jpg", "png")]
PICTURE
}
给我:
“FileTypeAttribute”不包含接受“1”参数的构造函数
和
“FileTypeAttribute”不包含接受“2”参数的构造函数
谁能告诉我为什么会这样
据我记忆所及,实际上不可能使枚举更“java化”。但是,如果我遗漏了任何选项,我会很高兴听到它。构造函数是隐式的
私有的
-显式地标记它公共的
:
public FileTypeAttribute(params string[] extensions)
{
this.Extensions = extensions;
}
天哪。。他们怎么说木头和树呢。非常感谢,我会浪费时间:)