自定义属性的命名约定和指南
Naming conventions and guidelines for custom attributes
如果属性的名称应该是单数或复数,是否有任何关于属性的约定(可能是 Microsoft 的约定)?
我不确定命名约定是什么,或者是否有任何命名约定?我想要我系统中角色的属性 我不确定按照惯例(如果有的话)我应该将它复数化为 RolesAttribute
还是保持单数形式 RoleAttribute
。
- 编辑 -
现在我认为自定义属性仍然是从 Attribute
基础 class 派生的 classes,因此 classes 的约定是否适用于 C#还有属性?
这实际上取决于您要实现的功能。简而言之,如果您使用您的属性分配一个角色,那么将其设为单数,如果您分配多个角色,则将其设为复数。
更笼统地说,Attributes
应该使用清晰的 pascal 大小写 名称来命名,它们的功能是将元数据或声明性信息与代码相关联。与代码中的其他所有内容一样,请确保它们是描述性的且明确的。
我喜欢遵循的一些好的指导方针如下:
- Avoid unsealed attributes
- Custom attributes should end with the suffix
Attribute
- 定义具有参数的构造函数来初始化与所需参数相对应的属性
- 每个构造函数参数应与相应的 属性
具有相同的名称(除了 大小写 )
- Define accessors for attribute parameters, usually settable properties for optional parameters and getter only for required parameters
- Mark attributes with the
AttributeUsageAttribute
如果属性的名称应该是单数或复数,是否有任何关于属性的约定(可能是 Microsoft 的约定)?
我不确定命名约定是什么,或者是否有任何命名约定?我想要我系统中角色的属性 我不确定按照惯例(如果有的话)我应该将它复数化为 RolesAttribute
还是保持单数形式 RoleAttribute
。
- 编辑 -
现在我认为自定义属性仍然是从 Attribute
基础 class 派生的 classes,因此 classes 的约定是否适用于 C#还有属性?
这实际上取决于您要实现的功能。简而言之,如果您使用您的属性分配一个角色,那么将其设为单数,如果您分配多个角色,则将其设为复数。
更笼统地说,Attributes
应该使用清晰的 pascal 大小写 名称来命名,它们的功能是将元数据或声明性信息与代码相关联。与代码中的其他所有内容一样,请确保它们是描述性的且明确的。
我喜欢遵循的一些好的指导方针如下:
- Avoid unsealed attributes
- Custom attributes should end with the suffix
Attribute
- 定义具有参数的构造函数来初始化与所需参数相对应的属性
- 每个构造函数参数应与相应的 属性 具有相同的名称(除了 大小写 )
- Define accessors for attribute parameters, usually settable properties for optional parameters and getter only for required parameters
- Mark attributes with the
AttributeUsageAttribute