值
规则 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 删除。