我有一些验证代码,当字符串为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)
是不正确的,因为我的方法不返回值(我想我可以改变这一点,但这样更简洁)。
有没有可能做我想做的事?
1条答案
按热度按时间ha5z0ras1#
只需使用
NotNullAttribute
:从Attributes for null-state static analysis interpreted by the C# compiler开始:
可为空的参数、字段、属性或返回值永远不会为空。
它匹配目标-如果方法返回,
argument
将永远不会为空。This answer也可能很有用(还可以看看
CallerArgumentExpressionAttribute
的技巧)。