gpt4 book ai didi

c# - 使用自定义参数验证助手中断代码分析

转载 作者:行者123 更新时间:2023-11-30 15:58:00 25 4
gpt4 key购买 nike

我想使用自定义助手来简化参数验证,就像这样。

public static void ThrowIfNull(this object value, string parameterName)
{
if (value == null)
{
throw new ArgumentNullException(parameterName);
}
}

但是,静态代码分析当然不知道我在使用此帮助程序时确实验证了公共(public)方法中的输入,因此它给我 CA1062 关于公共(public)方法参数未被验证的错误。

具体问题是 this one .

有没有办法教导代码分析器这个助手处理参数空值验证?这个问题的正确解决方案是什么?

最佳答案

使用以下名称创建属性:

[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
public sealed class ValidatedNotNullAttribute : Attribute {}

然后将其应用于您正在验证的参数:

public static void ThrowIfNull([ValidatedNotNull] this object value, string parameterName)
{
if (value == null)
{
throw new ArgumentNullException(parameterName);
}
}

并且警告应该消失。

你可以看到这个属性被很多库使用,包括 .net 框架本身,例如 here .

关于c# - 使用自定义参数验证助手中断代码分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44005383/

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