我在blazor服务器项目中有这个enum定义:
public enum MyEnum
{
MyValue1 = 1,
MyValue2 = 2,
...
}
我有这个blazor组件(。剃须刀文件):
@typeparam T
@switch (e1)
{
case MyEnum e2:
@* Doing some stuff with e2 which is MyEnum type *@
...
break;
...
}
@code
{
[Parameter]
public MyEnum e1 { get; set; }
}
这段代码工作得很好,但我对它的编写方式不满意。
我想用if语句替换开关,但它不起作用。当我试图将e1转换为MyEnum类型时,我有一个编译错误,即使我检查T的类型…
你知道吗?
感谢** EDIT **
这就是我所尝试的,我得到的编译错误:
@if (e1 is MyEnum)
{
MyEnum e2 = e1 as MyEnum;
...
}
错误是:
操作符必须与引用类型或可空类型一起使用('MyEnum'是非空值类型)
您可以尝试使用:
MyEnum e2 = e1;