gpt4 book ai didi

c# - 在不影响 C# 8 可空分析器的情况下测试空值

转载 作者:行者123 更新时间:2023-12-05 00:57:45 25 4
gpt4 key购买 nike

启用 C# 8 可空值后,以下代码不会产生任何错误。

var x = GetObjectX();
return x;

添加一行我会收到警告:

var x = GetObjectX();
Debug.Assert(x != null);
return x; //Warning: 'X' may be null here. Possible null reference return.

这是预期的行为吗?

我不信任没有调试行的可空算法的原因是返回的对象是反序列化的。

抑制警告的最简洁方法是什么?

最佳答案

在 .NET Core 3 中,Debug.Assert 带有 [DoesNotReturnWhen(false)] 注释,有助于编译器理解代码并避免警告。

如果没有它,编译器会将 null 测试视为来自用户的指示,表明该值毕竟可能为 null。

如果您不使用 .NET Core 3,您可以创建自己的断言方法。请参阅 RoslynDebug.Assert举个例子。

关于c# - 在不影响 C# 8 可空分析器的情况下测试空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59700836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com