我想每个人都看过这样的代码:
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)
这似乎太冗长,但如果这是唯一的方法,那么我想我会使用它。