Ben*_*est 8 .net c# enums casting
可能重复:
将枚举转换为另一种类型的枚举
在不同类型的枚举之间进行转换时,是否可以直接从一种类型转换为另一种类型?
LicenseTypes type;
TypeOfLicense type2;
type2 = (TypeOfLicense)type;
Run Code Online (Sandbox Code Playgroud)
或者是否有必要先将枚举转换为int?编译器没有抱怨,但我想确保我不会在运行时获得某种时髦的转换异常.
这可能看起来很奇怪,但两个枚举在结构和价值上都是相同的.在这种情况下,只有类型名称不同.
虽然它是重复的,我也标记了它.你可以做简单的转换,beucase的底层类型是int,你可以这样做:
LicenseTypes type = (LicenseTypes)TypeOfLicense.value3;
Run Code Online (Sandbox Code Playgroud)
这里type将保持值'0';
假设你有:
public enum LicenseTypes
{
value1,
value2,
}
public enum TypeOfLicense
{
value3,
value4,
value5
}
Run Code Online (Sandbox Code Playgroud)
但是如果你尝试Cast,TypeOfLicence.value5那么变量type将保存int值2
LicenseTypes type = (LicenseTypes)TypeOfLicense.value5;
Run Code Online (Sandbox Code Playgroud)
您还可以查看此链接,以便为枚举之间的转换创建扩展方法.(它是类似问题的公认答案)
| 归档时间: |
|
| 查看次数: |
10371 次 |
| 最近记录: |