【读书笔记】编写高质量代码改善C# 建议122- 139(⭐命名规范)

122、以<Company>.<Component>为命名空间命名

例如 Microsoft.Windows.Design

不要将眼界局限在团队内部,应该考虑到代码会和别的代码交互。所以,好的命名空间规范会为我们规避这方面的限制

----------关于命名空间先跳过,还没自定义过命名空间--------------

125、避免与系统的类型名称重复

之前一个朋友自己写了一个text,当他想为UGUI的text赋值,得到了text就是没法赋值

所以尽量避免

126、用名词和名词组给类型命名

简单来说,类型的命名应该是名词,而不是动词或者形容词之类的

127、用形容词给接口命名

例如IDisposable :表示可以被释放的

IEnumerable 表示可以被迭代的

128、考虑让派生类的名字以基类名字作为后缀

RectangleShape -> Shape

CircleShape -> Shape

129、泛型类型参数要以T作为前缀

Dictionary<TKey,TResult>

130、以复数命名枚举类型,以单数命名枚举元素

131、用PascalCasing命名公开元素

PascalCasing这个是什么鬼, 看例子应该是public的元素首字母要大写

132、考虑用类名作为属性名

public Person Person { get; set; }

133、用camelCasing命名私有字段和局部变量

私有字段和局部变量的首字母要小写

134、有条件的使用前缀

前缀m_,表示这是一个实例类型

前缀s_,表示这是一个静态变量

const变量使用名词加下划线的表示方法

前缀仅限于上面三种,下面例子演示了三种前缀和滥用前缀

public class SampleClass
{
    static int s_price;
    int m_price;
    const int BASE_PRICE = 1000;
    //请忽略匈牙利命名法中的 变量类型_变量名的前缀 
    //不要这样使用!!
    int int_price;
}

135、考虑使用肯定性的短语命名布尔值

例如 Is 、Can、 Has

public class SampleClass
{
    public bool IsEnabled { get; set; }
    public bool AllowDrop { get; set; }
    public bool CanMove { get; set; }
    public bool HasKey { get; set; }
}

136、优先使用后缀表示已有类型的新版本

如果一个类有多个版本,建议使用以下命名新版本,而不是SampleClassNew

public class SampleClass
{
}

public class SampleClass2
{
}

public class SampleClass3
{
}

137、委托和事件类型应添加上级后缀

138、事件和委托变量使用动词或形容词短语命名

因为事件和委托实际上是调用方法,所以应该由动词或形容词短语命名

139、事件处理器命名采用组合方式

所谓事件处理器,就是实际被委托执行的那个方法

举几个命名例子

按钮委托点击调用的方法: Button_Click()

属性改变调用的方法:OnValueChanged()

猜你喜欢

转载自blog.csdn.net/qq_33413868/article/details/81513874