编程语言
首页 > 编程语言> > 从C#中的int是否有类型安全的枚举转换?

从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