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()