




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
10编程规范代码编写1. 对象的认识 = 模糊认识 + 清楚认识。当前类解决的是清楚认识部分,模糊认识由将来派生类完成。2. 方法的输入、输出要有严格的定义。要做到功能明确,不越权。3. 除非在万不得以的情况下,在类中不能定义公用字段,字段的引用尽量要采用属性形式。4. 不可修改的字段应用Const来修饰,并说明类型。5. 对你所写的每一个文件都加上相关的标准化注释,一般应包括:文件的作用、作者及时间等;例如:/作者:/时间:/作用:/6. 为你定义的类写详细的注释,包括作者、时间、修改信息、基本的算法等。类实现功能的注释方法如下:/ / class 的摘要说明。/ 7. 为你定义的每一个方法、字段、属性写详细的注释,包括输入输出参数说明、返回值说明、方法功能说明;如:/ / 该方法的摘要信息/ / sql参数的说明/ 返回值的说明public int ModifyData(string sql)8. 写注释的时候语义要明确,注释的长度最好不要超过一句话9. 所有标识符(类名、方法名、字段名、属性名等)均要求意义明确易于理解,不用关键字作为标识符,名字中避免使用易混淆的数字10. 避免在代码中直接使用数字等不确定意义的词,尽量使用有意义的串值代替;如:const static PI = 3.141592611. 尽量不用或少用goto语句,不要在同一行中写多个语句,利用添加空格来清晰地表示语句的成分12. 不要写太长的if().,for().,While(.)或者太多的嵌套;对上述较长者在范围结束处加注释。如/for 循环结束13. 可以在程序中添加一些空格、空行和缩进等技巧,帮助人们从视觉上看清程序的结构,在使用缩进的时候应使用“Tab”键,而不是使用空格键14. 在向工程中添加新页面时,.net会自动帮你生成一段代码,其中包括OnInit(Eventargs e)和InitializeComponent()方法,在页面中添加事件的时候会自动在InitializeComponent()方法安装事件;但是在此过程中会出现一些问题,因此不允许使用OnInit()方法,直接把这段话删除;为此,我们因在代码中添加Page_Init()方法以替代OnInit()方法,Page_Init事件可以通过页面构造函数安装,再由Page_Init调用InitializeComponent()方法15. 为了便于规范,所有的页面都必需从kaiyuan.PageBase派生,而不是直接从System.Web.UI.Page派生16. 在Page_Load方法开始处添加 PageData data = CheckPage(pageID) 语句,其中pageID为当前操作页面的id,具体值见PageID类命名指南总的来说除了参数(包括方法内部定义的临时变量)和private作用域的字段采用Camel大小写的命名规则之外,其他的都采用Pascal大小写命名规则;如果字段是一个控件的实例,必须在后面跟上控件名;不要在字段前加g_ 或 s_ 或m_等前缀;const字段一般全用大写;例如一个有关文件名的各种命名:常量:private const string FILE_NAME = reg.aspx;字段:private string fileName;字段:public string FileName;控件:protected System.Web.UI.WebControls.TextBox FileNameTextBox;参数:string fileName;有关具体的命名详细见以下各部分1 大写样式使用下面的三种大写标识符约定1. Pascal 大小写将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用 Pascal 大小写。例如:BackColor2. Camel 大小写标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:backColor3. 大写标识符中的所有字母都大写。仅对于由两个或者更少字母组成的标识符使用该约定。例如:System.IOSystem.Web.UI可能还必须大写标识符以维持与现有非托管符号方案的兼容性,在该方案中所有大写字母经常用于枚举和常数值。一般情况下,在使用它们的程序集之外这些字符应当是不可见的。下表汇总了大写规则,并提供了不同类型的标识符的示例。标识符大小写示例类PascalAppDomain枚举类型PascalErrorLevel枚举值PascalFatalError事件PascalValueChange异常类PascalWebException 注意总是以 Exception 后缀结尾。只读的静态字段PascalRedValue接口PascalIDisposable 注意总是以 I 前缀开始。方法PascalToString命名空间PascalSystem.Drawing参数CameltypeName属性PascalBackColor受保护的实例字段CamelredValue 注意很少使用。属性优于使用受保护的实例字段。公共实例字段PascalRedValue 注意很少使用。属性优于使用公共实例字段。2 区分大小写为了避免混淆和保证跨语言交互操作,请遵循有关区分大小写的使用的下列规则:1. 不要使用要求区分大小写的名称。对于区分大小写和不区分大小写的语言,组件都必须完全可以使用。不区分大小写的语言无法区分同一上下文中仅大小写不同的两个名称。因此,在创建的组件或类中必须避免这种情况。2. 不要创建仅是名称大小写有区别的两个命名空间。例如,不区分大小写的语言无法区分以下两个命名空间声明。namespace ee.cummingsnamespace Ee.Cummings3. 不要创建具有仅是大小写有区别的参数名称的函数。下面的示例是不正确的void MyFunction(string a, string A)4. 不要创建具有仅是大小写有区别的类型名称的命名空间。在下面的示例中,Point p 和 POINT p 是不适当的类型名称,原因是它们仅在大小写方面有区别System.Windows.Forms.Point pSystem.Windows.Forms.POINT p5. 不要创建具有仅是大小写有区别的属性名称的类型。在下面的示例中,int Color 和 int COLOR 是不适当的属性名称,原因是它们仅在大小写方面有区别。int Color get, setint COLOR get, set6. 不要创建具有仅是大小写有区别的方法名称的类型。在下面的示例中,calculate 和 Calculate 是不适当的方法名称,原因是它们仅在大小写方面有区别。void calculate()void Calculate()3 缩写为了避免混淆和保证跨语言交互操作,请遵循有关区缩写的使用的下列规则: 1. 不要将缩写或缩略形式用作标识符名称的组成部分。例如,使用 GetWindow,而不要使用 GetWin。 2. 不要使用计算机领域中未被普遍接受的缩写。 3. 在适当的时候,使用众所周知的缩写替换冗长的词组名称。例如,用 UI 作为 User Interface 的缩写,用 OLAP 作为 On-line Analytical Processing 的缩写。 4. 在使用缩写时,对于超过两个字符长度的缩写,请使用 Pascal 大小写或 Camel 大小写。例如,使用 HtmlButton 或 htmlButton。但是,应当大写仅有两个字符的缩写,如,System.IO,而不是 System.Io。 5. 不要在标识符或参数名称中使用缩写。如果必须使用缩写,对于由多于两个字符所组成的缩写请使用Camel大小写,虽然这和单词的标准缩写相冲突。4 措词避免使用与常用的 .NET Framework 命名空间重复的类名称;避免使用和关键字冲突的标识符。5 避免类型名称混淆使用描述类型的含义的名称,而不是描述类型的名称。如果参数除了其类型之外没有任何语义含义,那么在这种罕见的情况下请使用一般性名称。例如,支持将各种数据类型写入到流中的类可以有以下方法void Write(double value);void Write(float value);void Write(long value);void Write(int value);void Write(short value);不要创建语言特定的方法名称,如下面的示例所示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 表示形式通用类型名称SbyteSbyteSBytecharint8SByteByteByteByteunsigned charunsigned int8ByteShortShortShortshortint16Int16UshortUInt16Ushortunsigned shortunsigned int16UInt16IntIntegerIntintint32Int32UintUInt32Uintunsigned intunsigned int32UInt32LongLongLong_int64int64Int64UlongUInt64Ulongunsigned _int64unsigned int64UInt64FloatSingleFloatfloatfloat32SingleDoubleDoubleDoubledoublefloat64DoubleBoolBooleanbooleanboolboolBooleanCharCharCharwchar_tcharCharStringStringStringStringstringStringObjectObjectObjectObjectobjectObject例如,支持将从流读取各种数据类型的类可以有以下方法。double ReadDouble();float ReadSingle();long ReadInt64();int ReadInt32();short ReadInt16();上面的示例优先于下面的语言特定的替代方法。double ReadDouble();float ReadFloat();long ReadLong();int ReadInt();short ReadShort();6 类命名指南以下规则概述命名类的指南: 1. 使用名词或名词短语命名类。 2. 使用 Pascal 大小写。 3. 少用缩写。 4. 不要使用类型前缀,如在类名称上对类使用 C 前缀。例如,使用类名称 FileStream,而不是 CFileStream。 5. 不要使用下划线字符 (_)。 6. 有时候需要提供以字母 I 开始的类名称,虽然该类不是接口。只要 I 是作为类名称组成部分的整个单词的第一个字母,这便是适当的。例如,类名称 IdentityStore 就是适当的。 7. 在适当的地方,使用复合单词命名派生的类。派生类名称的第二个部分应当是基类的名称。例如,ApplicationException 对于从名为 Exception 的类派生的类是适当的名称,原因是 ApplicationException 是一种 Exception。请在应用该规则时进行合理的判断。例如,Button 对于从 Control 派生的类是适当的名称。尽管按钮是一种控件,但是将 Control 作为类名称的一部分将使名称不必要地加长。 下面是正确命名的类的示例public class FileStreampublic class Buttonpublic class String7 方法命名指南以下规则概述方法的命名指南: 1. 使用动词或动词短语命名方法。 2. 使用 Pascal 大小写。 以下是正确命名的方法的实例RemoveAll()GetCharArray()Invoke()8 字段使用指南以下规则概述字段的使用指南: 1. 不要使用是 public 或 protected的实例字段。如果避免将字段直接公开给开发人员,可以更轻松地对类进行版本控制,原因是在维护二进制兼容性时字段不能被更改为属性。考虑为字段提供 get 和 set 属性访问器,而不是使它们成为公共的。get 和 set 属性访问器中可执行代码的存在使得可以进行后续改进,如在使用属性或者得到属性更改通知时根据需要创建对象。 2. 使用 const关键字声明不会更改的常量字段。语言编译器直接将 const 字段的值保存在调用代码中。 常量字段的名称通常全部大写,例如:private const String TRACING_TRACEFILE_DEFAULT = ApplicationTrace.txt;3. 对预定义对象实例使用公共静态只读字段。如果存在对象的预定义实例,则将它们声明为对象本身的公共静态只读字段。使用 Pascal 大小写,原因是字段是公共的。下面的代码示例阐释公共静态只读字段的正确使用。public static readonly Color Red = new Color(0x0000FF);public static readonly Color Green = new Color(0x00FF00); 4. 拼写出字段名称中使用的所有单词。仅在开发人员一般都能理解时使用缩写。5. 不要对字段名使用匈牙利语表示法。好的名称描述语义,而非类型。 6. 不要对字段名或静态字段名应用前缀。具体说来,不要对字段名称应用前缀来区分静态和非静态字段。例如,应用 g_ 或 s_ 前缀是不正确的9 属性命名指南以下规则概述属性的命名指南: 1. 使用名词或名词短语命名属性。 2. 使用 Pascal 大小写。 3. 不要使用匈牙利语表示法。 4. 考虑用与属性的基础类型相同的名称创建属性。10 接口命名指南以下规则概述接口的命名指南: 1. 用名词或名词短语,或者描述行为的形容词命名接口。例如,接口名称 IComponent 使用描述性名词。接口名称 ICustomAttributeProvider 使用名词短语。名称 IPersistable 使用形容词。 2. 使用 Pascal 大小写。 3. 少用缩写。 4. 给接口名称加上字母 I 前缀,以指示该类型为接口。 5. 在定义类/接口对(其中类是接口的标准实现)时使用相似的名称。两个名称的区别应该只是接口名称上有字母 I 前缀。 6. 不要使用下划线字符 (_)。 11 事件命名指南以下规则概述事件的命名指南: 1. 使用 Pascal 大小写。 2. 不要使用匈牙利语表示法。 3. 对事件处理程序名称使用 EventHandler 后缀。 4. 指定两个名为 sender 和 e 的参数。sender 参数表示引发事件的对象。sender 参数始终是 object 类型的,即使在可以使用更为特定的类型时也如此。与事件相关联的状态封装在名为 e 的事件类的实例中。对 e 参数类型使用适当而特定的事件类。 5. 用 EventArgs 后缀命名事件参数类。 6. 考虑用动词命名事件。例如,命名正确的事件名称包括 Clicked、Painting 和 DroppedDown。 7. 使用动名词(动词的“ing”形式)创建表示事件前的概念的事件名称,用过去式表示事件后。例如,可以取消的 Close 事件应当具有 Closing 事件和 Closed 事件。不要使用 BeforeXxx/AfterXxx 命名模式。 8. 不要在类型的事件声明上使用前缀或者后缀。例如,使用 Close,而不要使用 OnClose。 9. 通常情况下,对于可以在派生类中重写的事件,应在类型上提供一个受保护的方法(称为 OnXxx)。此方法只应具有事件参数 e,因为发送方总是类型的实例。 12 枚举类型命名指南枚举 (Enum) 值类型从 Enum 类继承。以下规则概述枚举的命名指南: 对于 Enum 类型和值名称使用 Pascal 大小写。 少用缩写。 不要在 Enum 类型名称上使用 Enum 后缀。 对大多数 Enum 类型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流企业员工爱岗敬业与物流效率提升协议
- 水面承包经营权流转与生态修复项目合作协议
- 遗赠抚养协议示范文本:子女赡养与财产继承指导书
- 初高中教师选调与教师职业素养提升服务合同
- 5G通信网络扩建项目电杆与管道材料购销服务合同
- 网络订餐平台食堂外卖配送员聘用服务合同
- 城市地下管网改造项目建议书与政府投资协议
- 现代农业苗木种植基地场地租赁与农业科技创新合同
- 酒店会议场地租赁及专业会议策划执行合同
- 昆山物业费退还判决书合同要点与执行流程
- 钢结构雨棚作业安全技术交底
- 《旅游学概论》课件-《旅游学概论》 第一章 旅游的产生与发展
- 电力隐患培训课件
- 女性私密项目培训
- 2025年《审计理论与实务(中级)》考前几页纸
- 北京高考英语一轮专项复习:词汇-高频短语(含解析)
- 砂石采购合同范本
- 幼儿园课程实施方案
- 学校食堂操作流程培训
- 2025年四川省水电投资经营集团有限公司招聘笔试参考题库含答案解析
- 医德医风领导小组制度及职责
评论
0/150
提交评论