我有以下内容:
MyEnum? maybeValue = GetValueOrNull();
if (null != maybeValue)
{
MyEnum value = (MyEnum)maybeValue;
}
Run Code Online (Sandbox Code Playgroud)
我想知道的是,(MyEnum)在类型实例上是否需要显式强制转换MyEnum?.这似乎是一个简单的问题,我只是觉得有些偏执,如果我只是MyEnum value = maybeValue在那个if语句中做的话可能会有一些运行时错误.
对于可以为空的类型,您可以这样做
if (maybeValue.HasValue)
{
MyEnum value = maybeValue.Value;
}
Run Code Online (Sandbox Code Playgroud)
由于您使用的是可空类型,请尝试使用
if(maybeValue.HasValue)
{
MyEnum value = maybeValue.Value; // no cast needed! Yay!
}
Run Code Online (Sandbox Code Playgroud)