我想大家都看过类似的代码:使用属性以减少枚举枚举映射和枚举/常量行动开关statments
public void Server2ClientEnumConvert(ServerEnum server)
{
switch(server)
{
case ServerEnum.One:
return ClientEnum.ABC
//And so on.
相反,这个坏我们可以做财产以后类似的:
public enum ServerEnum
{
[Enum2Enum(ClientEnum.ABC)]
One,
}
现在我们可以使用反射来通过ServerEnum翻录并从枚举声明本身获取转换映射。
我在这里遇到的问题是在Enum2Enum属性的声明中。
这个工作,但用Enum e替换对象o不行。我不想将对象传递给构造函数,只能传入其他枚举。
public class EnumToEnumAttribute : Attribute
{
public EnumToEnumAttribute(object o){}
}
这不能编译。
public class EnumToEnumAttribute : Attribute
{
public EnumToEnumAttribute(Enum e){}
}
是否有编译错误的原因?我还能怎样传递到除了地图所需的信息:
EnumtoEnumAttribute(Type dest, string enumString)
这似乎太冗长,但如果它是唯一的出路,然后我想我会用它。
你得到了什么编译错误?哪里? – 2008-12-26 06:55:35