Fed*_*ico 4 c# enums parsing type-conversion
我有两个相同的C#枚举定义如下:
public enum ArrivalToleranceEnum
{
ZERO,
QUARTERHOUR,
HALFHOUR,
ONEHOUR,
TWOHOURS,
}
public enum ArrivalTolerance {
/// <remarks/>
ZERO,
/// <remarks/>
QUARTERHOUR,
/// <remarks/>
HALFHOUR,
/// <remarks/>
ONEHOUR,
/// <remarks/>
TWOHOURS,
}
Run Code Online (Sandbox Code Playgroud)
ArrivalTolerance是在外部库中定义的,在我的程序中我想使用本地的EnrivalToleranceEnum,所以我需要转换这两种类型.我怎样才能做到这一点?我试图通过结束(使用开关)这样做,但它是非常tedius而不是非常节省时间因为我需要转换其他更大的枚举.
枚举值由整数常量表示.如果底层枚举常量相同,则只需转换:
(ArrivalToleranceEnum)(int)ArrivalTolerance.HALFHOUR
Run Code Online (Sandbox Code Playgroud)
如果它们不相同,则可以使用反射代码或Enum类的静态成员之一自动执行映射.但是,这更乏味,也更慢.
如果只有名称匹配,请不要使用此命令
var value = Enum.Parse(typeof(ArrivalToleranceEnum),ArrivalTolerance.ToString());
Run Code Online (Sandbox Code Playgroud)
如果您不确定所有枚举的int值是否匹配,则最好使用字符串匹配解决方案.
| 归档时间: |
|
| 查看次数: |
1004 次 |
| 最近记录: |