ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:26.98KB ,
资源ID:4575538      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4575538.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C# 系统编写规范总结版.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C# 系统编写规范总结版.docx

1、C# 系统编写规范总结版代码编写规范(C#)目录第一章 规范目的 2第二章 适用范围 2第三章 注释规范 23.1概述 23.2自建代码文件注释 33.3类属性注释 33.4方法注释 33.5代码间注释 43.6异常捕获 4第四章 总体命名规则 5第五章 命名范例和规范 65.1命名注记 65.2命名详细说明 65.2.1类名使用Pascal 大小写形式 65.2.2方法使用Pascal 大小写形式 65.2.3变量和方法参数使用Camel 大小写形式 65.2.4不要使用匈牙利方法来命名变量 75.2.5用有意义的,描述性的词语来命名变量 75.2.6文件名要和类名匹配 75.2.7类中命名

2、 8第六章 良好的编程习惯 9第七章 编码规则 127.1 错误检查规则 127.2 大括号规则 127.3 缩进规则 137.4 小括号规则 137.5 IfThenElse规则 137.6 比较规则 137.7 Case规则 147.8 对齐规则 147.9 单语句规则 147.10 单一功能规则 147.11简单功能规则 147.12明确条件规则 147.13选用FALSE规则 147.14独立赋值规则 147.15定义常量规则 147.16模块化规则 157.17交流规则 15第八章编程准则 158.1变量使用 158.2数据库操作 158.3对象使用 158.4模块设计原则 158.

3、5结构化要求 15附件 161.数据类型缩写表数据类型缩写 162.控件缩写(以下只列举常用的控件,不是所有的控件均列举) 16第一章 规范目的一、为了统一团队软件开发设计过程的编程规范。二.使程序开发人员能很方便的理解每个目录,变量,控件,类,方法的意义三.为了保证编写出的程序都符合相同的规范,保证一致性、统一性而建立的程序编码规范。四.编码规范和约定必须能明显改善代码可读性,并有助于代码管理、分类范围适用于所有基于.NET平台的软件开发工作 第二章 适用范围本规范适用于开发组全体人员,作用于软件项目开发的代码编写阶段和后期维护阶段。 第三章 注释规范 3.1概述 别每行代码,每个声明的变量

4、都做注释。 在需要的地方注释。可读性强的代码需要很少的注释。如果所有的变量和方法的命名都很有意义,会使代码可读性很强并无需太多注释。 行数不多的注释会使代码看起来优雅。但如果代码不清晰,可读性差,那就糟糕。 如果应为某种原因使用了复杂艰涩的原理,为程序配备良好的文档和重分的注释。 对一个数值变量采用不是0,-1等的数值初始化,给出选择该值的理由。 简言之,要写清晰,可读的代码以致无须什么注释就能理解。 对注释做拼写检查,保证语法和标点符号的正确使用,以外还要注意: a)注释要求英文及英文的标点符号。 b)注释中,应标明对象的完整的名称及其用途,但应避免对代码过于详细的描述。 c)每行注释的最大

5、长度为100个字符。 d)将注释与注释分隔符用一个空格分开。 e)不允许给注释加外框。 f)编码的同时书写注释。 g)重要变量必须有注释。 h)变量注释和变量在同一行,所有注释必须对齐,与变量分开至少四个“空格”键。如: intm_iLevel,m_iCount;/m_iLevel.treelevel /m_iCount.countoftreeitems stringm_strSql; /SQL i)典型算法必须有注释。 j)在循环和逻辑分支地方的上行必须就近书写注释。 k)程序段或语句的注释在程序段或语句的上一行 l)在代码交付之前,必须删掉临时的或无关的注释。 m)为便于阅读代码,每行代码

6、的长度应少于100个字符。 3.2自建代码文件注释 对于自己创建的代码文件(如函数、脚本),在文件开头,编写如下注释: /*/* Copyright (c) 2010-2011 灵动软件培训第一组/* 创建人:/* 类名称文件名:/* 类功能:数据维护/* 描 述:/* 创建日期:/* 修改人:/* 修改日期:/* 整理日期:/*3.3类属性注释在类的属性必须以以下格式编写属性注释: / / / 3.4方法注释在类的方法声明前必须以以下格式编写注释: #region 方法原型 方法说明/方法说明/方法原型 方法体;#endregion如:#region public static void O

7、utData(DataGridView paramDataGridView) 数据导出 / / 数据导出 / / 要操作的DataGridView控件public static void OutData(DataGridView paramDataGridView) #ednregion 3.5代码间注释代码间注释分为单行注释和多行注释: / /*多行注释1 多行注释2 多行注释3*/ 代码中遇到语句块时必须添加注释(if,for,foreach,),添加的注释必须能够说明此语句块的作用和实现手段(所用算法等等)。3.6异常捕获 不要“捕捉了异常却什么也不做“。如果隐藏了一个异常,你将永远不知

8、道异常到底发生了没有。 发生异常时,给出友好的消息给用户,但要精确记录错误的所有可能细节,包括发生的时间,和相关方法,类名等。 只捕捉特定的异常,而不是一般的异常。好: void ReadFromFile ( string fileName ) try / read from file. catch (FileIOException ex) / log error. / re-throw exception depending on your case. throw; 不好: void ReadFromFile ( string fileName ) try / read from file.

9、 catch (Exception ex) / Catching general exception is bad. we will never know whether it / was a file error or some other error. / Here you are hiding an exception. / In this case no one will ever know that an exception happened. return ; 不必在所有方法中捕捉一般异常。不管它,让程序崩溃。这将帮助你在开发周期发现大多数的错误。 你可以用应用程序级(线程级)错误

10、处理器处理所有一般的异常。遇到”以外的一般性错误“时,此错误处理器应该捕捉异常,给用户提示消息,在应用程序关闭或 用户选择”忽略并继续“之前记录错误信息。 不必每个方法都用try-catch。当特定的异常可能发生时才使用。比如,当你写文件时,处理异常FileIOException. 别写太大的 try-catch 模块。如果需要,为每个执行的任务编写单独的 try-catch 模块。 这将帮你找出哪一段代码产生异常,并给用户发出特定的错误消息 如果应用程序需要,可以编写自己的异常类。自定义异常不应从基类SystemException派生,而要继承于. IApplicationException

11、。第四章 总体命名规则 一、名字应该能够标识事物的特性(尽量做到见名知意)。 二、名字一律使用英文单词,绝对不能为拼音。 三、名字尽量不使用缩写,除非它是众所周知的。 四、名字可以有两个或三个单词组成,但不应多于三个,控制在3至30个字母以内。 五、在名字中,多个单词用第一个字母大写(其它字母小写)来分隔。例如:IsSuperUser。名字尽量使用前缀而不是后缀。六、名字中的单词尽量使用名词,如有动词,也尽量放在后面。例如:FunctionUserDelete(而不是FunctionDeleteUser)。 第五章 命名范例和规范 5.1命名注记 Pascal 大小写形式所有单词第一个字母大写

12、,其他字母小写。Camel 大小写形式除了第一个单词,所有单词第一个字母大写,其他字母小写。5.2命名详细说明5.2.1类名使用Pascal 大小写形式 public class HelloWorld .5.2.2方法使用Pascal 大小写形式 public class HelloWorld void SayHello(string name) . 5.2.3变量和方法参数使用Camel 大小写形式 public class HelloWorld int totalCount = 0; void SayHello(string name) string fullMessage = Hello

13、 + name; . 5.2.4不要使用匈牙利方法来命名变量 以前,多数程序员喜欢它把数据类型作为变量名的前缀而m_作为成员变量的前缀。例如: string m_sName;int nAge;然而,这种方式在.NET编码规范中是不推荐的。所有变量都用camel 大小写形式,而不是用数据类型和m_来作前缀。 5.2.5用有意义的,描述性的词语来命名变量 别用缩写。用name, address, salary等代替 nam, addr, sal 别使用单个字母的变量象i, n, x 等. 使用 index, temp等 用于循环迭代的变量例外: for ( int i = 0; i count;

14、i+ ) .如果变量只用于迭代计数,没有在循环的其他地方出现,许多人还是喜欢用单个字母的变量(i) ,而不是另外取名。 变量名中不使用下划线 (_) 。 命名空间需按照标准的模式命名5.2.6文件名要和类名匹配 例如,对于类HelloWorld, 相应的文件名应为 helloworld.cs (或, helloworld.vb) 缩进和间隔缩进用 TAB . 不用 SPACES. 注释需和代码对齐. 花括弧 ( ) 需和括号外的代码对齐. 用一个空行来分开代码的逻辑分组。 bool SayHello (string name) string fullMessage = Hello + name

15、; DateTime currentTime = DateTime.Now; string message = fullMessage + , the time is : + currentTime.ToShortTimeString(); MessageBox.Show ( message ); if ( . ) / Do something / . return false; return true; 这段代码看起来比上面的好: bool SayHello ( string name ) string fullMessage = Hello + name; DateTime current

16、Time = DateTime.Now; string message = fullMessage + , the time is : + currentTime.ToShortTimeString(); MessageBox.Show ( message ); if ( . ) / Do something / . return false; return true; 5.2.7类中命名在类中,各个方法需用一空行,也只能是一行分开。 花括弧需独立一行,而不象if, for 等可以跟括号在同一行。 好: if ( . ) / Do something 不好: if ( . ) / Do som

17、ething 即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如i或j。鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。每个单词的第一个字母都是大写. 在变量名中使用互补对,如min/max、begin/end和open/close。 (i=1;i-不要使用原义数字或原义字符串,如For=7;i+)。而是使用命名常数,如For(i=1;i=NUM_DAYS_IN_WEEK;i+)以便于维护和理解。 5.2.8控件命名控件命名=控件名称前二到三个字母+名称,如Labl控件(labUserName)具体常

18、用控件缩写见附录。 5.2.9常量命名常量名也应当有一定的意义,格式为NOUN或NOUN_VERB。常量名均为大写,字之间用下划线分隔。例: privateconstboolWEB_ENABLEPAGECACHE_DEFAULT=true; privateconstintWEB_PAGECACHEEXPIRESINSECONDS_DEFAULT=3600; privateconstboolWEB_ENABLESSL_DEFAULT=false; 注:变量名和常量名最多可以包含255个字符,但是,超过25到30个字符的名称比较笨拙。此外,要想取一个有实际意义的名称,清楚地表达变量或常量的用途,2

19、5或30个字符应当足够了。 5.3类(Class)命名 a)名字应该能够标识事物的特性。 b)名字尽量不使用缩写,除非它是众所周知的。 c)名字可以有两个或三个单词组成,但通常不应多于三个。 d)在名字中,所有单词第一个字母大写。例如IsSuperUser,包含ID的,ID全部大写,如CustomerID。 e)使用名词或名词短语命名类。 f)少用缩写。 g)不要使用下划线字符(_)。例:publicclassFileStream publicclassButton publicclassString 5.4接口(Interface)命名 和类命名规范相同,唯一区别是接口在名字前加上“I”前缀

20、 例: interfaceIDBCommand; interfaceIButton; 第六章 良好的编程习惯遵从以下良好的习惯以写出好程序 a)避免使用大文件。如果一个文件里的代码超过300400行,必须考虑将代码分开到不同类中。 b)避免写太长的方法。一个典型的方法代码在125行之间。如果一个方法发代码超过25行,应该考虑将其分解为不同的方法。 c)方法名需能看出它作什么。别使用会引起误解的名字。如果名字一目了然,就无需用文档来解释方法的功能了。好: void SavePhoneNumber ( string phoneNumber ) / Save the phone number. 不好

21、: / This method will save the phone number. void SaveData ( string phoneNumber ) / Save the phone number. d)一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小。好: / Save the address. SaveAddress ( address ); / Send an email to the supervisor to inform that the address is updated. SendEmail ( address, email ); voi

22、d SaveAddress ( string address ) / Save the address. / . void SendEmail ( string address, string email ) / Send an email to inform the supervisor that the address is changed. / . 不好: / Save address and send an email to the supervisor to inform that the address is updated. SaveAddress ( address, emai

23、l ); void SaveAddress ( string address, string email ) / Job 1. / Save the address. / . / Job 2. / Send an email to inform the supervisor that the address is changed. / . e)使用C# 或 VB.NET的特有类型,而不是System命名空间中定义的别名类型。好: int age; string name; object contactInfo;不好: Int16 age; String name; Object contact

24、Info;f)别在程序中使用固定数值,用常量代替。 g)别用字符串常数。用资源文件。 h)避免使用很多成员变量。声明局部变量,并传递给方法。不要在方法间共享成员变量。如果在几个方法间共享一个成员变量,那就很难知道是哪个方法在什么时候修改了它的值。 i)必要时使用enum 。别用数字或字符串来指示离散值。 好: enum MailType Html, PlainText, Attachment void SendMail (string message, MailType mailType) switch ( mailType ) case MailType.Html: / Do somethi

25、ng break; case MailType.PlainText: / Do something break; case MailType.Attachment: / Do something break; default: / Do something break; 不好: void SendMail (string message, string mailType) switch ( mailType ) case Html: / Do something break; case PlainText: / Do something break; case Attachment: / Do

26、 something break; default: / Do something break; j)别把成员变量声明为 public 或 protected。都声明为 private 而使用 public/protected 的Properties. k)不在代码中使用具体的路径和驱动器名。 使用相对路径,并使路径可编程。 l)永远别设想你的代码是在“C:”盘运行。你不会知道,一些用户在网络或“Z:”盘运行程序。 m)应用程序启动时作些“自检”并确保所需文件和附件在指定的位置。必要时检查数据库连接。出现任何问题给用户一个友好的提示。 n)如果需要的配置文件找不到,应用程序需能自己创建使用默认值的一份。 如果在配置文件中发现错误值,应用程序要抛出错误,给出提示消息告诉用户正确值。 o)错误消息需能帮助用户解决问题。永远别用象应用程序出错, 发现一个错误 等错误消息。而应给出象 更新数据库失败。请确保登陆id和密码正确。 的具体消息。 p)显示错误消息时,除了说哪里错了,还应提示用户如何解决问题。不要用 象 更新数据库失败。这样的,要提示用户怎么做:更新数据库失败。请确保登陆id和密码正确。 显示给用户的消息要简短而

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1