软件代码编写规范
软件代码 编写 规范
软件代码编写规范
草稿
2005.2
软件代码 编写 规范
1 命名规则
http://doc.guandang.net命名规则
一致的命名模式是托管类库中可预知性与可发现性最重要的元素之一。对这些命名指南广泛的使用和理解将消除许多最常见的用户问题。本主题提供 .NET Framework 类型的命名指南。对于每个类型,还应该注意关于大写样式、区分大小写和措词的一些通用规则。
1.1.1大写样式
描述用于在类库中命名标识符的 Pascal 大小写、Camel 大小写和全部大写样式。
使用下面的三种大写标识符约定。
Pascal 大小写
将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用 Pascal 大小写。例如: BackColor
Camel 大小写
标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如: backColor
大写
标识符中的所有字母都大写。仅对于由两个或者更少字母组成的标识符使用该约定。例如: System.IO System.Web.UI
可能还必须大写标识符以维持与现有非托管符号方案的兼容性,在该方案中所有大写字母经常用于枚举和常数值。一般情况下,在使用它们的程序集之外这些字符应当是不可见的。 下表汇总了大写规则,并提供了不同类型的标识符的示例。
标识符
类 枚举类型 枚举值 事件 异常类
Pascal Pascal Pascal Pascal Pascal
大小写
AppDomain ErrorLevel FatalError ValueChange WebException
注意 总是以 Exception 后缀结尾。
只读的静态字段 接口
Pascal Pascal
RedValue IDisposable
注意 总是以 I 前缀开始。
方法 命名空间 参数 属性
Pascal Pascal Camel Pascal
ToString System.Drawing typeName BackColor
示例
软件代码 编写 规范
受保护的实例字段 Camel redValue
注意 很少使用。属性优于使用受保护的实例字段。
公共实例字段 Pascal RedValue
注意 很少使用。属性优于使用公共实例字段。
1.1.2区分大小写
为了避免混淆和保证跨语言交互操作,请遵循有关区分大小写的使用的下列规则:
不要使用要求区分大小写的名称。对于区分大小写和不区分大小写的语言,组件都必须完全可以使用。不区分大小写的语言无法区分同一上下文中仅大小写不同的两个名称。因此,在创建的组件或类中必须避免这种情况。 不要创建仅是名称大小写有区别的两个命名空间。例如,不区分大小写的语言无法区分以下两个命名空间声明。 namespace ee.cummings; namespace Ee.Cummings;
不要创建具有仅是大小写有区别的参数名称的函数。下面的示例是不正确的。 void MyFunction(string a, string A)
不要创建具有仅是大小写有区别的类型名称的命名空间。在下面的示例中,Point p 和 POINT p 是不适当的类型名称,原因是它们仅在大小写方面有区别。 System.Windows.Forms.Point p System.Windows.Forms.POINT p
不要创建具有仅是大小写有区别的属性名称的类型。在下面的示例中,int Color 和 int COLOR 是不适当的属性名称,原因是它们仅在大小写方面有区别。 int Color {get, set} int COLOR {get, set}
不要创建具有仅是大小写有区别的方法名称的类型。在下面的示例中,calculate 和 Calculate 是不适当的方法名称,原因是它们仅在大小写方面有区别。 void calculate() void Calculate()
1.1.3缩写
为了避免混淆和保证跨语言交互操作,请遵循有关区缩写的使用的下列规则:
不要将缩写或缩略形式用作标识符名称的组成部分。例如,使用 GetWindow,而不要使用 GetWin。 不要使用计算机领域中未被普遍接受的缩写。
在适当的时候,使用众所周知的缩写替换冗长的词组名称。例如,用 UI 作为 User Interface 的缩写,用 OLAP 作为 On-line Analytical Processing 的缩写。
在使用缩写时,对于超过两个字符长度的缩写,请使用 Pascal 大小写或 Camel 大小写。例如,使用 HtmlButton 或 htmlButton。但是,应当大写仅有两个字符的缩写,如,System.IO,而不是 System.Io。
不要在标识符或参数名称中使用缩写。如果必须使用缩写,对于由多于两个字符所组成的缩写请使用 Camel 大小写,虽然这和单词的标准缩写相冲突。
软件代码 编写 规范
1.1.4措词
避免使用与常用的 .NET Framework 命名空间重复的类名称。例如,不要将以下任何名称用作类名称:System、Collections、Forms 或 UI。有关 .NET Framework 命名空间的列表,请参见类库。 另外,避免使用和以下关键字冲突的标识符。 AddHandler AddressOf As ByRef Catch CDec CLng CStr Default
Assembly Byte CBool CDbl CObj CType
Alias Auto ByVal CByte Char Const Date
And Base Call CChar CInt CShort Decimal
Ansi Boolean Case CDate Class CSng Declare
1.1.5避免类型名称混淆
语言
不同的编程语言使用不同的术语标识基本托管类型。类库设计人员必须避免使用语言特定的术语。请遵循本节中描述的规则以避免类型名称混淆。
使用描述类型的含义的名称,而不是描述类型的名称。如果参数除了其类型之外没有任何语义含义,那么在这种罕见的情况下请使用一般性名称。例如,支持将各种数据类型写入到流中的类可以有以下方法。 [Visual Basic]
Sub Write(value As Double); Sub Write(value As Single); Sub Write(value As Long); Sub Write(value As Integer); Sub Write(value As Short); [C#]
void Write(double value); void Write(float value); void Write(long value); void Write(int value); void Write(short value);
不要创建语言特定的方法名称,如下面的示例所示。 [Visual Basic]
Sub Write(doubleValue As Double); Sub Write(singleValue As Single); Sub Write(longValue As Long); Sub Write(integerValue As Integer); Sub Write(shortValue As Short); [C#]
void Write(double doubleValue);
软件代码 编写 规范
void Write(float floatValue); void Write(long longValue); void Write(int intValue); void Write(short shortValue);
如果有必要为每个基本数据类型创建唯一命名的方法,那么在这种极为罕见的情况下请使用通用类型名称。下表列出基本数据类型名称和它们的通用替换。
C# 类型名称 Visual Basic 类型JScript 类型名称 Visual C++ 类型名
Ilasm.exe 表示形式
通用类型名称
名称
称
sbyte SByte sByte char
int8
byte Byte byte unsigned char unsigned int8 short Short short short
int16
ushort UInt16 ushort unsigned short unsigned int16 int Integer int int
int32
uint UInt32 uint unsigned int unsigned int32 long Long long __int64
int64
ulong UInt64 ulong unsigned __int64 unsigned int64 float Single float float float32 double Double double double float64 b …… 此处隐藏:14122字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [求职职场]加法运算定律的运用练习题
- [求职职场]大型石油化工工业过程节能新技术
- [求职职场]2015-2020年中国箱纸板行业分析与投资
- [求职职场]NADEX-IWC5A点焊机故障代码
- [求职职场]英语阅读 非常有用
- [求职职场]鲁卫疾控发〔2012〕2号(联合,印发山东
- [求职职场]2014年莆田公务员行测技巧:数字推理的
- [求职职场]基于最近发展区理论的高中数学课堂有效
- [求职职场]与贸易有关的知识产权协议
- [求职职场]【王风范】微演说·职场演说三
- [求职职场]新时代国珍健康大课堂
- [求职职场]群论期末考试复习题
- [求职职场]施工现场消防安全专项施工方案(范本)-
- [求职职场]初中物理光学知识点归纳完美版
- [求职职场]毕业设计总结与体会范文
- [求职职场]江南大学2018年上半年展示设计第1阶段
- [求职职场]景尚乡民兵参战支前保障方案
- [求职职场]【优质】2019年工会职工之家建设工作总
- [求职职场]数据库技术与应用—SQL Server 2008(第
- [求职职场]汽车变速箱构造与工作原理
- 首钢工业区工业遗产资源保护与再利用研
- 第4课 《大学》节选
- 2016程序文件——检验检测结果发布程序
- 2011年高考试题文言文阅读全解释__2011
- 化学是一门基础的自然科学
- 海外做市商制度的借鉴意义
- 外国建筑史复习资料(
- 七年级下思想品德期末综合测试(二)
- 思政课部2013年上学期教学工作总结
- 电大国际公法任务3 0004
- 《圆的认识》教学设计
- 中国轨道交通牵引变流器行业市场发展调
- 中泰证券#定期报告:坚守时代硬科技和
- 浅论企业财务管理与企业经营投资风险的
- 大功率半导体激光器光纤耦合技术调研报
- 中国传统家具的现状与发展探讨
- Broadcom数字电视芯片助海尔扩展高清电
- 新HSK4词汇练习 超全(五)
- 2013届高考数学单元考点复习12
- 雨霖铃精品课件




