从C#中的int是否有类型安全的枚举转换?
作者:互联网
我知道我可以使用强制转换将int转换为枚举
MyEnumType myEnum = (MyEnumType) myInteger;
这里的问题是,如果myInteger不是int类型,则运行时强制转换不会在构建时停止我
void MyMethod(MyObject myObject)
{
MyEnumType myEnum = (MyEnumType) myObject.someProperty;
....
}
上面的代码并不是一种罕见的代码模式,但是如果对象的属性类型已更改,则在构建时不会保护我.
是否有内置方法来执行此转换,这会给我一个构建时错误?我当然可以相当容易地编写一个通用方法,但是我想知道是否内置了该方法.
解决方法:
您可以使用
Enum.TryParse(myInteger.ToString(), out result)
获取一个int的Enum值.
希望这可以帮助,
标签:enums,compiler-errors,casting,c 来源: https://codeday.me/bug/20191030/1966096.html