gpt4 book ai didi

c# - 在 C#/.NET 中将参数标记为 NOT nullable?

转载 作者:IT王子 更新时间:2023-10-29 03:37:54 24 4
gpt4 key购买 nike

是否有一个简单的属性或数据协定,我可以将其分配给防止 null 的函数参数?从在 C#/.NET 中传递?理想情况下,这还将在编译时进行检查以确保文字 null没有在任何地方使用它并且在运行时抛出 ArgumentNullException .

目前我写的是...

if (null == arg)
throw new ArgumentNullException("arg");

... 对于我认为不是 null 的每个参数.

同理,有没有Nullable<>的反义词?因此以下将失败:

NonNullable<string> s = null; // throw some kind of exception

最佳答案

不幸的是,编译时没有可用的东西。

我有点hacky solution我最近在我的博客上发布了它,它使用了新的结构和转换。

在 .NET 4.0 中使用 Code Contracts东西,生活会美好很多。拥有实际的语言语法和围绕不可为空性的支持仍然非常好,但代码契约会有很大帮助。

我在MiscUtil中也有一个扩展方法称为 ThrowIfNull,这使它更简单一些。

最后一点 - 使用“if (null == arg)”而不是“if (arg == null)”的任何原因?我发现后者更容易阅读,而前者在 C 中解决的问题不适用于 C#。

关于c# - 在 C#/.NET 中将参数标记为 NOT nullable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/291340/

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