当前位置:  开发笔记 > 编程语言 > 正文

使用属性来减少enum到枚举映射和enum/const到动作切换语句

如何解决《使用属性来减少enum到枚举映射和enum/const到动作切换语句》经验,为你挑选了0个好方法。

我想每个人都看过如下代码:

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)

这似乎太冗长,但如果这是唯一的方法,那么我想我会用它.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有