前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CA1715:标识符应具有正确的前缀

CA1715:标识符应具有正确的前缀

作者头像
呆呆
发布2022-02-19 18:40:10
4860
发布2022-02-19 18:40:10
举报
文章被收录于专栏:centosDaicentosDai

规则 ID

CA1715

类别

命名

修复是中断修复还是非中断修复

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

原因

接口的名称未以大写的“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<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

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档