值
规则 ID
CA1000
类别
设计
修复是中断修复还是非中断修复
重大
原因
泛型类型包含 static(在 Visual Basic 中为 Shared)成员。
默认情况下,此规则仅查看外部可见的类型,但这是可配置的。
规则说明
调用泛型类型的 static 成员时,必须指定该类型的类型参数。 当调用不支持推理的泛型实例成员时,必须指定该成员的类型参数。 在上述两种情况下,用于指定类型参数的语法不同且容易混淆,如以下调用所示:
' Shared method in a generic type.
GenericType(Of Integer).SharedMethod()
' Generic instance method that does not support inference.
someObject.GenericMethod(Of Integer)()
// Static method in a generic type.
GenericType<int>.StaticMethod();
// Generic instance method that does not support inference.
someObject.GenericMethod<int>();
通常,应避免前两个声明,以便在调用成员时不必指定类型参数。 这导致用于调用泛型中的成员的语法与用于非泛型的语法没有区别。
如何解决冲突
若要解决此规则的冲突,请删除静态成员或将其更改为实例成员。
何时禁止显示警告
不禁止显示此规则发出的警告。 以易于理解和使用的语法提供泛型,可减少学习所需的时间,并增加新库的采用率。
抑制警告
可以通过多种方式来禁止显示代码分析警告,包括禁用项目的规则、使用预处理器指令为特定代码行禁用该规则或应用 SuppressMessageAttribute 特性。 有关详细信息,请参阅如何禁止显示代码分析警告。
配置代码以进行分析
使用下面的选项来配置代码库的哪些部分要运行此规则。
包含特定的 API 图面
你可以仅为此规则、为所有规则或为此类别中的所有规则配置此选项(设计)。 有关详细信息,请参阅代码质量规则配置选项。
包含特定的 API 图面
你可以根据代码库的可访问性,配置要针对其运行此规则的部分。 例如,若要指定规则应仅针对非公共 API 图面运行,请将以下键值对添加到项目中的 .editorconfig 文件:
dotnet_code_quality.CAXXXX.api_surface = private, internal
相关规则
CA1005:避免泛型类型的参数过多
CA1010:集合应实现泛型接口
CA1002:不要公开泛型列表
CA1003:使用泛型事件处理程序实例
另请参阅
泛型
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。