CA1715:标识符应具有正确的前缀(代码分析)

您所在的位置:网站首页 航班CA1715 CA1715:标识符应具有正确的前缀(代码分析)

CA1715:标识符应具有正确的前缀(代码分析)

2024-05-17 05:10| 来源: 网络整理| 查看: 265

CA1715:标识符应具有正确的前缀 项目 11/15/2023 属性 值 规则 ID CA1715 标题 标识符应具有正确的前缀 类别 命名 修复是中断修复还是非中断修复 中断 - 在接口上引发时。

非中断 - 在泛型类型参数上引发时。

在 .NET 8 中默认启用 否 原因

接口的名称未以大写的“I”开头。

-或-

类型或方法上的泛型类型参数的名称未以大写的“T”开头。

默认情况下,此规则仅查看外部可见的接口、类型和方法,但这是可配置的。

规则说明

按照约定,某些编程元素的名称以特定前缀开头。

接口名称应以大写的“I”开头,后跟另一个大写字母。 此规则报告与接口名称(如“MyInterface”和“IsolatedInterface”)相关的冲突。

泛型类型参数名称应以大写的“T”开头,可选择后跟另一个大写字母。 此规则报告与泛型类型参数名称(如“V”和“Type”)相关的冲突。

命名约定为面向公共语言运行时的库提供通用外观。 这缩短了新软件库的学习曲线,让客户更加相信该库是由拥有托管代码开发专业知识的人员开发的。

配置代码以进行分析

使用下面的选项来配置代码库的哪些部分要运行此规则。

包含特定的 API 图面 单字符类型参数

可以仅为此规则、为适用的所有规则或为适用的此类别(命名)中的所有规则配置这些选项。 有关详细信息,请参阅代码质量规则配置选项。

包含特定的 API 图面

你可以根据代码库的可访问性,配置要针对其运行此规则的部分。 例如,若要指定规则应仅针对非公共 API 图面运行,请将以下键值对添加到项目中的 .editorconfig 文件:

dotnet_code_quality.CAXXXX.api_surface = private, internal 单字符类型参数

可以配置是否从该规则中排除单字符类型参数。 例如,若要指定此规则不得分析单字符类型参数,请将以下某一键值对添加到项目的 .editorconfig 文件中:

# Package version 2.9.0 and later dotnet_code_quality.CA1715.exclude_single_letter_type_parameters = true # Package version 2.6.3 and earlier dotnet_code_quality.CA2007.allow_single_letter_type_parameters = true

备注

对于名为 T 的类型参数(例如 Collection),不会触发此规则。

如何解决冲突

重命名标识符,使其具有正确的前缀。

何时禁止显示警告

不禁止显示此规则发出的警告。

接口命名示例

以下代码片段显示了一个命名错误的接口:

' Violates this rule Public Interface Book ReadOnly Property Title() As String Sub Read() End Interface // Violation. public interface Book { string Title { get; } void Read(); }

下面的代码片段通过使用“I”作为接口的前缀来解决之前的冲突:

// Fixes the violation by prefixing the interface with 'I'. public interface IBook { string Title { get; } void Read(); } ' Fixes the violation by prefixing the interface with 'I' Public Interface IBook ReadOnly Property Title() As String Sub Read() End Interface 类型参数命名示例

以下代码片段显示了命名错误的泛型类型参数:

' Violates this rule Public Class Collection(Of Item) End Class // Violation. public class Collection { }

下面的代码片段通过使用“T”作为泛型类型参数的前缀来解决之前的冲突:

// Fixes the violation by prefixing the generic type parameter with 'T'. public class Collection { } ' Fixes the violation by prefixing the generic type parameter with 'T' Public Class Collection(Of TItem) End Class


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3