C# · 12月 31, 2021

.net – Nullable Enum可空类型问题

我得到以下编译错误与以下源代码:

编译错误:

无法确定条件表达式的类型,因为”和’MyEnum’之间没有隐式转换

源代码

public enum MyEnum{ Value1,Value2,Value3}public class MyClass{ public MyClass() {} public MyEnum? MyClassEnum { get; set; }}public class Main(){ object x = new object(); MyClass mc = new MyClass() { MyClassEnum = Convert.IsDBNull(x) : null ? (MyEnum) Enum.Parse(typeof(MyEnum),x.ToString(),true) };}

如何解决这个错误?

解决方法 我想你只需要将Enum.Parse的结果转给MyEnum?至少可以使用nullable int的情况.例如.: int? i;i = shouldBeNull ? null : (int?) 123;

所以:

MyClassEnum = Convert.IsDBNull(x) ? null : (MyEnum?) Enum.Parse(typeof(MyEnum),true)