如何验证 C# 中的 List 参数以修复 CA1062

Posted

技术标签:

【中文标题】如何验证 C# 中的 List 参数以修复 CA1062【英文标题】:How to validate the List parameter in c# to fix CA1062 【发布时间】:2017-05-05 12:41:14 【问题描述】:

我有以下代码。我得到了 FxCop 违规。我不知道如何验证 List 参数。

 public Collection<ProjectData> IsHookedConfiguredList(Collection<ProjectData> groupProjectList)
    
        if (groupProjectList.Count != 0)
        
           // my code
                    

        return hookConfiguredList;
    

我添加了if (groupProjectList.Count != 0)这一行,但我没有消除违规。

我该如何解决这个问题?

【问题讨论】:

如果输入为空,你的函数会做什么?它应该抛出、传播 null、返回一个空集合吗? @PanagiotisKanavos 不可能是空输入。 @Aruunkumar 当然有-var tempList=null;(10 lines after that); var newList=IsHookedConfiguredList(tempList);。检查输入参数并决定如何处理不可避免的空值 【参考方案1】:

代码分析希望您在使用之前检查传递的参数是否为空。试试这个:

public Collection<ProjectData> IsHookedConfiguredList(Collection<ProjectData> groupProjectList)

    if (groupProjectList == null)
    
        throw new ArgumentNullException(nameof(groupProjectList));
    

    //  the code

【讨论】:

以上是关于如何验证 C# 中的 List 参数以修复 CA1062的主要内容,如果未能解决你的问题,请参考以下文章

如何验证Future [List [T]]中的单个元素以返回Future [List [T]]或抛出异常

如何在 C# 的线程中以编程方式复制 Excel 文件时修复访问拒绝错误

如何修复重塑我的数据集以进行交叉验证?

如何将表达式理解为 C# 中的方法参数 [重复]

如何修复 C# MOngoDB 中的日期匹配错误

通过生成参数验证来修复 FxCop CA1062