gpt4 book ai didi

c# - 将 C#8 的方法识别为可空检查器?

转载 作者:行者123 更新时间:2023-12-03 09:27:40 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Possibility of external functions as nullable guards?

(2 个回答)


去年关闭。




我经常使用扩展方法来检查方法参数

void MyMethod(string? test)
{
Require.NotNull(test, nameof(test));
// Same as
// if (test == null) throw new ArgumentNullExeception(nameof(test))

...
}

启用 C# 8 时 nullables但是,编译器认为我在使用扩展方法时没有检查 null 参数。

有没有办法识别扩展方法 Require.NotNull作为 nullable检查员?

最佳答案

ongoing work in roslyn#36039最终允许作者以一种将可为空的信息返回给编译器的方式注释他们的方法。目前有一些功能处于预览状态,但我不知道确切的状态。

但是,我会在这里质疑您的方法:如果您在方法中做的第一件事是检查 null 并有效地抛出异常,那么将 null 值传递给您的方法是 不是 一个有效的输入。因此,您的方法不应以接受 null 的方式进行注释。

您宁愿将其标记为不接受空值,因此编译器会正确地告诉您在何处调用具有潜在空值的方法。

关于c# - 将 C#8 的方法识别为可空检查器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60171941/

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