Ben*_*iel 6 c# reflection enums attributes
我想每个人都看过如下代码:
public void Server2ClientEnumConvert( ServerEnum server)
{
switch(server)
{
case ServerEnum.One:
return ClientEnum.ABC
//And so on.
Run Code Online (Sandbox Code Playgroud)
而不是这种不好,我们可以这样做:
public enum ServerEnum
{
[Enum2Enum(ClientEnum.ABC)]
One,
}
Run Code Online (Sandbox Code Playgroud)
现在我们可以使用反射来翻录ServerEnum并从枚举声明本身获取转换映射.
我在这里遇到的问题是在Enum2Enum属性的声明中.
这有效,但用Enum e替换对象o则不行.我不希望能够将对象传递给构造函数,只传递给其他枚举.
public class EnumToEnumAttribute : Attribute
{
public EnumToEnumAttribute(object o){}
}
Run Code Online (Sandbox Code Playgroud)
这无法编译.
public class EnumToEnumAttribute : Attribute
{
public EnumToEnumAttribute(Enum e){}
}
Run Code Online (Sandbox Code Playgroud)
是否有编译错误的原因?我还能如何传递地图所需的信息:
EnumtoEnumAttribute(Type dest, string enumString)
Run Code Online (Sandbox Code Playgroud)
这似乎太冗长,但如果这是唯一的方法,那么我想我会用它.
| 归档时间: |
|
| 查看次数: |
1152 次 |
| 最近记录: |