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

加入VIP,省得不是一点点
 

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

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

下载须知

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

版权提示 | 免责声明

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

C#编码规范.doc

1、C#编码规范第 1/10 页长江大学计算机学院 1 程序结构所有源代码的结构均采用以下顺序布局,对于没有的部分可以省略,便于阅读代码。/=#region Constant#endregion Constant/-#region Members#endregion Members/-#region Defaults#endregion Defaults/-#region Properties#endregion Properties/=#region Constructors#endregion Constructors/-#region InterfaceMethods#endregion I

2、nterfaceMethods/-#region StaticMethods#endregion StaticMethods/-#region OverrideMethods#endregion OverrideMethods/-#region PrivateMethods#endregion PrivateMethods/-#region ProtectedMethods#endregion ProtectedMethods/-#region PublicMethods#endregion PublicMethods/=#region Events#endregion Events/=2 命

3、名规则和风格 类、方法、常量采用 Pascal 风格命名public class SomeClass const int DefaultSize = 100; public SomeMethod() C#编码规范第 2/10 页长江大学计算机学院 成员变量采用 Camel 风格命名,但前面加一个底划线public class SomeClass int _port = 5000; public SomeMethod() 局部变量和方法参数采用 Camel 风格命名public class SomeClass public SomeMethod(int len) string sLine; 接

4、口采用 I 作为前缀命名interface IMyInterface 自定义属性类型以 Attr 作为后缀命名 自定义异常类型以 Ex 作为后缀命名 采用动名词命名方法,例如 ShowDialog() 有返回值的方法的命名应该能够描述其返回值,例如 GetObjectState() 采用描述性的变量名。 a) 避免采用单字母的变量名,如 i 或 t;而是采用 index 或 tempb) 对 public 和 protected 成员避免采用用匈牙利命名法,如:采用 Port 不用 nPort, c) 尽量不要采用缩写(例如将 number 缩写为 num) 总是使用 C#预定义的类型,而不是

5、使用 System 命名空间中的别名例如:采用 object 不用 Object采用 string 不用 String采用 int 不用 Int32 对于泛型类型采用大写字母。当处理.NET 类型的 Type 时保留其后缀 Type/ 正确方法: public class LinkedList / 避免使用: public class LinkedList 采用有意义的命名空间名,例如产品名称或公司名称 避免使用类的全称,而是采用 using 声明 避免在命名空间内使用 using 语句 把所有系统框架提供的名称空间组织到一起,把第三方提供的名称空间放到系统名称空间的下面C#编码规范第 3/1

6、0 页长江大学计算机学院 using System; using System.Collection.Generic; using System.ComponentModel; using System.Data; using MyCompany; using MyControls; 使用代理推导而不要显式的实例化一个化代理(C#2.0 新特性)delegate void SomeDelegate(); public void SomeMethod() SomeDelegate someDelegate=SomeMethod; 使用 tab 缩进,缩进 4 个空格 总是把花括号“”和“”独立放

7、在新的一行一个文件名应该能够反映它所对应的类名3 编码实践1. 避免在同一个文件中放置多个类 2. 避免在一个文件内写多于 500 行的代码(机器自动生成的代码除外)3. 避免写超过 25 行代码的方法4. 避免写超过 5 个参数的方法,如果要传递多个参数,使用结构5. 运算符的两边均应插入一个空格,便于阅读代码6. 注释时,在注释符号后面插入一个空格,便于阅读代码/ 自定义类public class MyClass.7. 不要手动去修改任何机器生成的代码a) 如果修改了机器生成的代码,修改你的编码方式来适应这个编码标准 b) 尽可能使用 partial classes 特性,以提高可维护性。

8、(C#2.0 新特性) 8. 避免对那些很直观的内容作注释,代码本身应该能够解释其本身的含义。由可读的变量名和方法名构成的优质代码应该不需要注释9. 注释应该只说明操作的一些前提假设、算法的内部信息等内容10. 避免对方法进行注释a) 使用充足的外部文档对 API 进行说明 b) 只有对那些其他开发者的提示信息才有必要放到方法级的注释中来 11. 除了 0 和 1,绝对不要对数值进行硬编码,通过声明一个常量来代替该数值12. 只对那些亘古不变的数值使用 const 关键字,例如一周的天数13. 避免对只读(read-only)的变量使用 const 关键字。在这种情况下,直接使用 readon

9、ly 关键字public class MyClasspublic const int DaysInWeek = 7;pubic readonly int Number;public MyClass(int someValue)Number=someValue;C#编码规范第 4/10 页长江大学计算机学院 14. 对每一个假设进行断言。平均起来,每 5 行应有一个断言using System.Diagnostics;object GetObject()object someObject = GetObject();Debug.assert(someObject != null);15. 每一行

10、代码都应该以白盒测试的方式进行审读16. 只捕捉那些你自己能够显式处理的异常17. 如果在 catch 语句块中需要抛出异常,则只抛出该 catch 所捕捉到的异常(或基于该异常而创建的其他异常) ,这样可以维护原始错误所在的堆栈位置catch(Exception ex)MessageBox.Show(ex.Message);throw; /或 throw exception;18. 避免利用返回值作为函数的错误代码19. 避免自定义异常类20. 当自定义异常类的时候a) 让你自定义的异常类从 Exception 类继承b) 提供自定义的串行化机制23. 避免 friend assemblie

11、s,因为这会增加程序集之间的耦合性24. 避免让你的代码依赖于运行在某个特定地方的程序集25. 在 application assembly(EXE client assemblies)中最小化代码量。使用类库来包含业务逻辑26. 避免显式指定枚举的值/ 正确 public enum ColorRed,Green,Blue / 避免 public enum ColorRed = 1, Green = 2, Blue = 329. 避免使用三元条件操作符30. 避免利用函数返回的 Boolean 值作为条件语句。把返回值赋给一个局部变量,然后再检测Bool IsEverythingOK()/ 避

12、免if(IsEverythingOk()/正确bool ok=IsEverythingOK();if (ok)31. 总是使用以零为基数的数组32. 总是使用一个 for 循环显式的初始化一个引用成员的数组C#编码规范第 5/10 页长江大学计算机学院 public class MyClassconst int ArraySize=100;MyClass array=new MyClassArraySize;For (int index=0;index或者 GenericEventHandler41. 避免显示触发事件。使用 EventsHelper 安全的发布事件42. 总是使用接口43.

13、接口和类中方法和属性的比应该在 2:1 左右44. 避免只有一个成员的接口45. 努力保证一个接口有 35 个成员46. 不要让一个接口中成员的数量超过 20,而 12 则是更为实际的限制47. 避免在接口中包含事件48. 当使用抽象类的时候,提供一个接口49. 在类继承结构中暴露接口50. 推荐使用显式接口实现51. 从来不要假设一个类型支持某个接口。在使用前总是要询问一下SomeType obj1;ImyInterface obj2;/ Some code to initialize obj1,then:obj2 = obj1 as ImyInterface;if(obj2 != null

14、)obj2.Method1();C#编码规范第 6/10 页长江大学计算机学院 else/ Handle erro in expected interface53. 不要硬编码那些可能会随发布环境变化而变化的字符串,例如数据库连接字符串54. 使用 String.Empty 取代“/ 避免string name = ”;/ 正确string name = String.Empty;55. 使用一个超过 80 字符的长字符串的时候,使用 StringBuilder 代替 string56. 避免在结构中提供方法a) 参数化的构造函数是鼓励使用的b) 可以重载运行符58. 当早绑定(early-b

15、inding)可能的时候就尽量不要使用迟绑定(late-binding)59. 让你的应用程序支持跟踪和日志61. 总在 switch 语句的 default 情形提供一个断言int number = SomeMethod();swith(number)case 1:trace.WriteLine(“Case 1:”)break;case 2:trace.Writeline(“Case 2:”);break;default:debug.Assert(false);break;62. 除了在一个构造函数中调用其它的构造函数之外,不要使用 this 关键字/ Example of proper u

16、se of thispublic class MyClasspublic MyClass(string message).public MyClass():this(“Hello”). 63. 不要使用 base 关键字访问基类的成员,除非你在调用一个基类构造函数的时候要决议一个子类的名称冲突/ Example of proper use of basepublic class Dogpublic Dog(string name).virtual public void Bark(int howlong).public class GermanShepherd:DogC#编码规范第 7/10

17、页长江大学计算机学院 public GermanShepherd(string name):base(name).override public void Bark(int howLong)base.Bark(howLong)66. 基于Programming .NET components2/e 中第四章的内容实现 Disponse()和 Finalize()方法67. 总是在 unchecked 状态下运行代码(出于性能的原因),但是为了防止溢出或下溢操作,要果断地使用 checked 模式Int CalcPower(int number,int power)int result=1;fo

18、r (int count=1;count=power;count+)checkedresult*=number;return result; 68. 使用条件方法来取代显式进行方法调用排除的代码(#if#endif)4 控件命名4.1 数据类型命名数据类型 数据类型简写 标准命名举例Boolean b bIsPostBack Integer n nRowCounter Long l lPos Single f fMaxX Double d dMaxValueChar c cDelimiter String s sFirstName DateTime dt dtStartDate Byte by

19、t bytPixelValue Decimal dec decAverageHeight Short sht shtAverage Object obj objReturnValue Array 后面加 s studentsArrayList 前面加 array arrayStudent List 前面加 list listStudentC#编码规范第 8/10 页长江大学计算机学院 4.2 Win 控件命名控件类型 控件类型简写 标准命名举例Label lbl lblMessage LinkLabel llbl llblToday Button btn btnSave TextBox txt

20、 txtName MainMenu mn mnFile MenuItem mi miFileOpenPopupMenu pm pmPrintCheckBox chk chkStock RadioButton rdo rdoSelected GroupBox gbo gboMain PictureBox pic picImage Panel pnl pnlBody DataGrid grd grdView ListBox lst lstProducts CheckedListBox lst lstChecked ComboBox cbo cboMenu ListView lvw lvwBrows

21、er TreeView tvw tvwType TabControl ctl ctlSegyInfoTabPage Tab tabTrackInfoDateTimePicker dtp dtpStartDate HscrollBar hsb hsbImage VscrollBar vsb vsbImage Timer tim timCount ImageList img imgList ToolBar tlb tlbManage StatusBar stb stbFootPrint OpenFileDialog dlg dlgOpenSaveFileDialog dlg dlgSave Fol

22、dBrowserDialog dlg dlgBrowser FontDialog dlg dlgFontColorDialog dlg dlgColor PrintDialog dlg dlgPrint 4.3 Web 控件命名控件类型 控件类型简写 标准命名举例AdRotator adrt Example C#编码规范第 9/10 页长江大学计算机学院 Button btn btnSubmit Calendar cal calMettingDates CheckBox chk chkBlue CheckBoxList chkl chklFavColors CompareValidator v

23、alc valcValidAge CustomValidator valx valxDBCheck DataGrid dgrd dgrdTitles DataList dlst dlstTitles DropDownList drop dropCountries HyperLink lnk lnkDetails Image img imgAuntBetty ImageButton ibtn ibtnSubmit Label lbl lblResults LinkButton lbtn lbtnSubmit ListBox lst lstCountries Panel pnl pnlForm2

24、PlaceHolder plh plhFormContents RadioButton rad radFemale RadioButtonList radl radlGender RangeValidator valg valgAge RegularExpression vale valeEmail_Validator Repeater rpt rptQueryResults RequiredFieldValidator valr valrFirstName Table tbl tblCountryCodes TableCell tblc tblcGermany TableRow tblr t

25、blrCountry TextBox txt txtFirstName ValidationSummary vals valsFormErrors XML xmlc xmlcTransformResults 4.4 ADO.Net 控件命名控件类型 控件类型简写 标准命名举例Connection con conNorthwind Command cmd cmdReturnProducts Parameter par parProductID DataAdapter da daProducts DataReader dr drProducts DataSet ds dsNorthWind DataTable dt dtProduct DataRow row rowRow98 C#编码规范第 10/10 页长江大学计算机学院 DataColumn col colProductID DataRelation rel relMasterDetail DataView vw vwFilteredProducts 4.5 希腊字母命名 Alpha Iota Rho Beta Kappa Sigma Gamma Lambda Tau Delta Mu Upsilon Epsilon Nu Phi Zeta Xi Chi Eta Omicron Psi Theta Pi Omega

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。