一、大小写约定
1、标识符的大小写规则
不要用下划线来区分单词也不要在标识符中使用下划线。
PascalCasing约定被用于除参数名之外的所有标识符。标识符中的每个单词的首字母大写。
camelCasing约定仅用于参数名除第一个单字外所有单词的首字母大写。
二、通用命名约定
1、标识符名字的选择
并不是所有编程语言都区分大小写所以不要仅仅以大小写来区分不同的名字
框架中标识符的名字意思的清楚要比长度更重要。要更注重可读性并非简短性。
不要使用下划线或是分隔符等非字母或非数字的字符作为标识符的名字。
不要使用匈牙利命名法???
2、为已有API的新版本命名
通常情况不要使用缩写词作为标识符的一部分不要使用未被广泛接接受的首字母缩写词。
对于类型名要使用CLR通用的类型名比如应使用ToInt64而非ToLong
为已有API的新版本命名规则
在创建已有API的新版本时使用与旧版本相似的名字
优先使用后缀而非前缀表示已有AP的新I版本但不要使用类似“Ex”的后缀来区分相同API的不同版本。
或使用数字后缀表示已有API的新版本
3、程序集和DLL的命名
要为程序集和DLL选择提示性的名字。程序集和DLL的名字不一定非要和命名空间相对应但在给程序集命名时遵循命名空间的名字也是合理的。
考虑按照下面的模式给DLL命名. .dll 其中可包含一个或多个以点号分隔的子句。
4、命名空间的命名
命名空间命名的一般规则 .(|)[.][.Subnamespace]
使用公司名称作为命名空间的前缀可以避免与另一家公司使用相同的名字。
要用稳定的、与版本无关的的产品名称作为名字空间的第二层。
不要根据公司的组织架构来决定命名空间的层次结构。
要使用PascalCasing大小写风格并用点号来分隔名字空间中的各部分比如Microsoft.Office.PowerPoint
考虑在适当的时候在命名空间中使用复数的形式。
不要用相同的名字既又作为命名空间又作为该命名空间下的类型的名字。
命名空间可以分为
1应用程序模理命名空间
System.Windows*
System.Web.UI*
2基础设施命名空间
System.Windows.Forms.Design
*.Design
*.Permissions
3核心命名空间
System
System.IO
System.Xml
System.Net
4技术命名空间
包括所有那些以两个前缀.开始的命名空间
Microsoft.Build.Utilities
Microsoft.Build.Tasks
5、类、结构和接口的命名
一般说来类型名称应该是个名词词组因为他们代表着系统中的一个实体。一条很好的经验法则是如果无法为类找到一个名词词组那么可能应该重新考虑这个类的总体设计。
最常用的名称应该是反应出使用场景而不是类的继承层次。因为大多数用户只会使用类继承的根节点他们几乎不会去关心类型的层次结构。
下面的命名规范适用于一般类型的命名
1要用名词或词组给类型命名在少数情况下也可以使用形容词给类型命名。
2不要给类型名加前缀。 唯一的前缀是接口的“I”。
3考虑让派生类的名字以基类的名字接尾比如ArgumentException与Exception
4要让接口的名字以“I”开头
5要确保一对类和接口的名字只差一个"I"
泛型类型参数命名
要用描述性的名字来命名泛型类参数比如public interface ISessionChannel {....}
对于泛型方法对于其参数可以使用T,U,V等一个大写字母。
考虑在类型参数名中显示出施加于该类型参数上的限制比如把一个限制为ISession的类型参数命名为TSession。
枚举类型命名
要用单数名词来名枚举类型
要用复数名词来命名表示位域的枚举类型这样的枚举类型与称为标记枚举比如
public enum ConsoleModifiers
{
Alt,
Control,
Shift
}
不要给枚举类型添加"Enum"的后缀
不要给枚举类型添回“Flag”的后缀
不要给枚举类型值添加前缀比如
public enum ImageMode
{
ImageModeBitmap,// 多余的"ImageMode"
ImageModeRgb,
ImageModeIndexed
}
6、类型成员的命名
1方法的命名
因为方法是用来执行操作的因此框架设计的规范要求方法的名必须是动词或是动词词组。它还用来把方法同属性和类型名区分开属性来类型名是名词或形容词。
2属性的命名
要不名词或形容词来命名属性
不要让属性名看起来与Get方法的名字相似比如TextWriter属性名与GetTextWriter方法(名字相似不好)
要用肯定性的短语来命名布尔属性比如CanSeek而不是CantSeek。如有需要可以选择性的加上“Is”“Can”“Has”等前缀
可考虑用属性的类型名给属性命名。
3事件的命名
事件表示一些动作所以和方法一样要用动词来命名但除此之外还要用动词的时态来表示事件发生的时间
要用动词或动词短语来命名事件
要用现在时、过去时来赋予事件名以前或以后事件
不要用“Before”或“After” 前缀后缀来区分前置事件和后置事件
要在命名事件处理函数后加上“EventHandler“后缀比如ClickedEventHandler
要在事件处理函数中使用send和e作为两个参数的名字
要在命名事件的参数类时加上”EventArgs“后缀
4静态字段的命名
命名静态字段时使用PascalCasing大小写风格
要用名词或名词短语来命名字段
不要给字段名加上前缀比如”g_“,"m_"
7、参数的命名
要在命名时使用camelCasing风格
要使用具有描述性的参数名
考虑根据参数的意思而不是参数的类型来命名参数类型的有关信息已有开发工具提供设计者可以使用参数名称更好的描述参数的意义
不应该使用匈牙利命名法
8、资源的命名
本地化的资源就好比属性可以通过特定的对象来引用。
要在命名资源关键字时使用PascalCasing大小写风格
要使标识字符具有描述性而不是字符变短应该尽可能的使字符简洁但不能牺牲可读性
要在命名资源时仅使用字母、数字、下划线
要用点号给标识符清楚的划分层次比如如果设计菜单系统可以如下命名
Menus.FileMenu.Close.Test
Menus.FileMenu.Close.Color
Menus.FileMenu.SaveAs.Test
Menus.FileMenu.SaveAs.Color
要在为异常的消息资源命名时遵循的命名约定资源标识符应该是异常的类型名加上一个简短的异常标识符之前以点号分隔
ArgumentException.IllegalCharacters
ArgumentException.Invalidname
ArgumentException.FileNameIsMalformed
转:https://www.cnblogs.com/76674718/archive/2010/01/23/1654848.html
【感谢龙石为本站提供数据共享交换平台 http://www.longshidata.com/pages/exchange.html】