.net 如何对C#函数进行注解以说明参数在返回时不为空

thtygnil  于 2022-12-20  发布在  .NET
关注(0)|答案(1)|浏览(169)

我有一些验证代码,当字符串为null/empty/blank时会抛出异常,我希望它在函数返回后向null检查系统发出argument不为null的信号。

void ThrowIfNullEmptyOrBlank(string? argument, string paramName)
    => ThrowIf(Check.Null & Check.Empty & Check.Blank, argument, paramName);

[return: NotNull] void ThrowIfNullEmptyOrBlank(string? argument, string paramName)是不正确的,因为我的方法不返回值(我想我可以改变这一点,但这样更简洁)。
有没有可能做我想做的事?

ha5z0ras

ha5z0ras1#

只需使用NotNullAttribute

void ThrowIfNullEmptyOrBlank([NotNull] string? argument, string paramName)
    => ThrowIf(Check.Null & Check.Empty & Check.Blank, argument, paramName);

Attributes for null-state static analysis interpreted by the C# compiler开始:
可为空的参数、字段、属性或返回值永远不会为空。
它匹配目标-如果方法返回,argument将永远不会为空。
This answer也可能很有用(还可以看看CallerArgumentExpressionAttribute的技巧)。

相关问题