首页 新闻 会员 周边

C#: 重载操作符时如何处理 nullable 情况

0
悬赏园豆:30 [已解决问题] 解决于 2023-05-03 13:20

比如下面的 BooleanResult 中 bool 操作符重载

public class BooleanResult
{
    public static implicit operator bool(BooleanResult booleanResult) => booleanResult.Success;
}

会触发 NullReferenceException,重现问题的测试代码

[Fact]
public void ImplicitConversionToBoolTest()
{
    BooleanResult? result = null;
    Assert.False(result == true);
}
dudu的主页 dudu | 高人七级 | 园豆:30979
提问于:2023-05-03 12:41
< >
分享
最佳答案
0

修改为下面的实现解决了

public static implicit operator bool(BooleanResult? booleanResult) => booleanResult?.Success == true;
dudu | 高人七级 |园豆:30979 | 2023-05-03 13:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册