提问人:user246392 提问时间:7/29/2023 更新时间:7/31/2023 访问量:27
.NET 6 中 CA1062 的泛型非空验证程序
Generic not-null validator for CA1062 in .NET 6
问:
我有一个泛型方法,可以确保 an 不是 null 或空。IEnumerable
public static void IsNotNullOrEmpty<T>(IEnumerable<T> enumerable)
{
if (enumerable == null || !enumerable.Any())
throw new Exception();
}
在 中,我想通过设置 将此方法注册为用于代码分析的非 null 验证器。对于非泛型方法,我可以将其设置为:.editorconfig
dotnet_code_quality.CA1062.null_check_validation_methods
dotnet_code_quality.CA1062.null_check_validation_methods = Namespace.Class.Method(ParameterType)
对于通用验证器来说,这是如何做到的?
答:
0赞
Mad hatter
7/31/2023
#1
我知道这不会完全回答您的问题,这只是一种解决方法,但是从您的方法中删除泛型呢?
public static void IsNotNullOrEmpty(IEnumerable enumerable)
{
if (enumerable == null)
throw new Exception();
var iterator = enumerable.GetEnumerator();
var empty = !iterator.MoveNext();
if (empty)
throw new Exception();
}
评论
IEnumerable<T>
Any
null
if (enumerable is null) throw new ArgumentNullException(nameof(enumerable));
ArgumentOutOfRangeException
enumerable