CA1715:标识符应具有正确的前缀
属性 | 值 |
---|---|
规则 ID | CA1715 |
标题 | 标识符应具有正确的前缀 |
类别 | 命名 |
修复是中断修复还是非中断修复 | 中断 - 在接口上引发时。 非中断 - 在泛型类型参数上引发时。 |
在 .NET 8 中默认启用 | 否 |
原因
接口的名称未以大写的“I”开头。
-或-
类型或方法上的泛型类型参数的名称未以大写的“T”开头。
默认情况下,此规则仅查看外部可见的接口、类型和方法,但这是可配置的。
规则说明
按照约定,某些编程元素的名称以特定前缀开头。
接口名称应以大写的“I”开头,后跟另一个大写字母。 此规则报告与接口名称(如“MyInterface”和“IsolatedInterface”)相关的冲突。
泛型类型参数名称应以大写的“T”开头,可选择后跟另一个大写字母。 此规则报告与泛型类型参数名称(如“V”和“Type”)相关的冲突。
命名约定为面向公共语言运行时的库提供通用外观。 这缩短了新软件库的学习曲线,让客户更加相信该库是由拥有托管代码开发专业知识的人员开发的。
配置代码以进行分析
使用下面的选项来配置代码库的哪些部分要运行此规则。
可以仅为此规则、为适用的所有规则或为适用的此类别(命名)中的所有规则配置这些选项。 有关详细信息,请参阅代码质量规则配置选项。
包含特定的 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<T>
),不会触发此规则。
如何解决冲突
重命名标识符,使其具有正确的前缀。
何时禁止显示警告
不禁止显示此规则发出的警告。
接口命名示例
以下代码片段显示了一个命名错误的接口:
' 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<Item>
{
}
下面的代码片段通过使用“T”作为泛型类型参数的前缀来解决之前的冲突:
// Fixes the violation by prefixing the generic type parameter with 'T'.
public class Collection<TItem>
{
}
' Fixes the violation by prefixing the generic type parameter with 'T'
Public Class Collection(Of TItem)
End Class