前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CA1721:属性名不应与 get 方法冲突

CA1721:属性名不应与 get 方法冲突

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

规则 ID

CA1721

类别

命名

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

重大

原因

成员的名称以“Get”开头,且其余部分与属性的名称匹配。 例如,包含名为“GetColor”的方法和名为“Color”的属性的类型将导致规则冲突。

如果使用 ObsoleteAttribute 对属性或方法进行标记,则不会触发此规则。

默认情况下,此规则仅查看外部可见的成员和属性,但这是可配置的。

规则说明

“Get”方法和属性的名称应能够明确区分其功能上的差异。

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

如何解决冲突

更改名称,使其与前缀为“Get”的方法名称不匹配。

何时禁止显示警告

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

备注

如果“Get”方法是由实现 IExtenderProvider 接口所引起,则可排除此警告。

配置代码以进行分析

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

包含特定的 API 图面

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

包含特定的 API 图面

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

dotnet_code_quality.CAXXXX.api_surface = private, internal

示例

下面的示例包含与此规则冲突的方法和属性。

public class Test

{

public DateTime Date

{

get { return DateTime.Today; }

}

// Violates rule: PropertyNamesShouldNotMatchGetMethods.

public string GetDate()

{

return this.Date.ToString();

}

}

Imports System

Namespace ca1721

Public Class Test

Public ReadOnly Property [Date]() As DateTime

Get

Return DateTime.Today

End Get

End Property

' Violates rule: PropertyNamesShouldNotMatchGetMethods.

Public Function GetDate() As String

Return Me.Date.ToString()

End Function

End Class

End Namespace

相关规则

CA1024:在适用处使用属性

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

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

本文系外文翻译前往查看

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

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