如何为C#函数添加注解,标识返回后参数不为null?
解决方案
你可以直接在argument参数上标记[NotNull]属性来实现需求,不需要修改方法的返回逻辑,完全保留原有简洁写法:
using System.Diagnostics.CodeAnalysis; void ThrowIfNullEmptyOrBlank([NotNull] string? argument, string paramName) => ThrowIf(Check.Null & Check.Empty & Check.Blank, argument, paramName);
原理说明
[NotNull]属性(来自System.Diagnostics.CodeAnalysis命名空间)作用于参数时,会告知静态分析工具:只要该方法正常返回(未抛出异常),这个参数就绝对不为null。这和你的方法逻辑完全匹配——如果argument是null/空字符串/空白字符串,方法会直接抛出异常;只有当argument满足非空要求时,才会正常返回,此时静态分析器就能识别出后续代码里argument不再是可空状态。
这种写法不需要改变方法的返回类型或返回参数值,完美保留了你想要的简洁实现。
内容的提问来源于stack exchange,提问作者Benjin
相关产品推荐
相关产品推荐

