C#.NET编程规约.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C#.NET编程规约.pdf》由会员分享,可在线阅读,更多相关《C#.NET编程规约.pdf(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、社内 C#.NET编程规约1 概述1.1 规范制定原则1 方便代码的交流和维护。2 不影响编码的效率,不与大众习惯冲突。3 使代码更美观、阅读更方便。4 使代码的逻辑更清晰、更易于理解。1.2 术语定义1.2.1Pascal 大小写Pascal 大小写形式是指名称中单词的第一个字母大写,如:EmployeeSalary,ConfirmDialog。1.2.2Camel大小写这种形式类似于Pascal 大小写形式,但名称中第一个单词的第一个字母不是大写:employeeSalary,comfirmDialog。2 命名对于理解应用程序的逻辑流,命名方案是最有影响力的一种帮助。名称应该说明“什么”
2、而不是“如何”。通过避免使用公开基础实现(它们会发生改变)的名称,可以保留简化复杂性的抽象层。例如,可以使用 GetNextStudent(),而不是 GetNextArrayElement()。2.1 命名原则选择正确名称时的困难可能表明需要进一步分析或定义项的目的。使名称足够长以便有一定的意义,并且足够短以避免冗长。唯一名称在编程上仅用于将各项区分开。表现力强的名称是为了帮助人们阅读;因此,提供人们可以理解的名称是有意义的。不过,请确保选择的名称符合适用语言的规则和标准。最好不要使用带有下划线的单词。使用全称避免缩写,除非缩写已是一种公认的约定,如URL、HTML。2.2 命名大小写原则在
3、名称的大小写方面,名称大部分都应采用Pascal 大小写命名形式。其中,命名空间、类、以及基类中的成员、接口、属性、方法、事件、静态字段等的名称都应遵循该规则。对于常量的定义采用全部大写的原则。此外还推荐使用另一种大小写模式:camel 大小写形式。有两种情况建议使用camel 大小写形式。1 传递给方法的所有参数都应是camel 大小写形式:Public void RecordSale(int employeeSalary,int quanitity);2 camel 大小写形式也可以用于区分同名的两个对象比较常见的情况是属性封装一个字段:Private string employeeNam
4、e;Public string EmployeeName Get Return employeeName;2.3 命名空间命名空间(namespace)的名称非常重要,需要仔细设计,以避免一个命名空间中对象的名称与其他对象同名。命名空间的名称是.Net 区分共享装配件中对象名的唯一方式,如果软件包的命名空间使用的名称与另一个软件包相同,而这两个软件包都安装到一台计算机上,就会出问题。因此,命名空间的名称最好用本公司名创建顶级的命名空间,再嵌套客户所在公司、或产品类所在软件包的命名空间,继而嵌套软件中所在模块层次名字的命名空间。例如 Pcguandian,DataAccess。这样的命名空间就肯
5、定是安全的,不会与其他人编写的命名空间同名。2.4 变量2.4.1 变量前缀C#的约定是命名变量时不使用任何前缀:string Result;string Message。2.4.2 杂项a)在变量名中使用互补对,如 min/max、begin/end 和 open/close b)布尔变量名应该包含 Is,这意味着 Yes/No 或 True/False 值,如 fileIsFound c)即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如 i 或 j d)不要使用原义数字或原义字符串,如 For i=1 To 7。而是使用命名常数
6、,如 For i=1 To NUM_DAYS_IN_WEEK 以便于维护和理解2.5 控件2.5.1 命名方法和社内其他编程工具开发规约类似,控件命名采用控件名简写+英文描述的方式,其中英文描述首字母大写2.5.2 主要控件名简写对照表控件名简写Label lbl TextBox txt Button btn LinkButton lnkbtn ImageButton imgbtn DropDownList ddl ListBox lst DataGrid dg DataList dl CheckBox chk CheckBoxList chkls RadioButton rdo RadioB
7、uttonList rdolt Image img Panel pnl Calender cld AdRotator ar Table tbl RequiredFieldValidator rfv CompareValidator cv RangeValidator rv RegularExpressionValidator rev ValidatorSummary vs CrystalReportViewer rptvew 2.6 类a)用名词或名词短语命名类似b)不要使用类型前缀,如在类名称上对类使用 C 前缀。例如,使用类名称 FileStream,而不是CFileStream c)有时
8、候需要提供以字母 I 开始的类名称,虽然该类不是接口。只要 I 是作为类名称组成部分的整个单词的第一个字母,这便是适当的。例如,类名称 IdentityStore 是适当的。在适当的地方,使用复合单词命名派生的类。派生类名称的第二个部分应当是基类的名称。例如,ApplicationException 对 于 从 名 为Exception 的 类 派 生 的 类 是 适 当 的 名 称,原 因ApplicationException 是一种 Exception2.7 接口a)用名词或名词短语,或者描述行为的形容词命名接口。例如,接口名称 IComponent 使用描述性名词。接口名称 ICust
9、omAttributeProvider 使用名词短语。名称 IPersistable 使用形容词。b)给接口名称加上字母 I 前缀,以指示该类型为接口。在定义类/接口对(其中类是接口的标准实现)时使用相似的名称。两个名称的区别应该只是接口名称上有字母 I 前缀。以下是正确命名的接口的示例。public interface IServiceProvider public interface IFormatable 以下代码示例阐释如何定义 IComponent 接口及其标准实现 Component 类。public interface IComponent /Implementation cod
10、e goes here.public class Component:IComponent /Implementation code goes here.2.8 属性(Attribute)应该总是将后缀 Attribute 添加到自定义属性类。以下是正确命名的属性类的示例。public class ObsoleteAttribute 2.9 枚举(Enum)a)不要在 Enum 类型名称上使用 Enum 后缀。b)对大多数 Enum 类型使用单数名称,但是对作为位域的 Enum 类型使用复数名称。c)总是将 FlagsAttribute 添加到位域 Enum 类型。2.10 方法使用动词或动词
11、短语命名方法。以下是正确命名的方法的实例RemoveAll()GetCharArray()Dispose()2.11 属性(Property)a)使用名词或名词短语命名属性。b)不要使用匈牙利语表示法。c)考虑用与属性的基础类型相同的名称创建属性。例如,如果声明名为 Color 的属性,则属性的类型同样应该是 Color。请参阅后面的示例。以下代码示例阐释提供其名称与类型相同的属性。public enum Color /Insert code for Enum here.public class Control public Color Color get /Insert code here.
12、set /Insert code here.以下代码示例不正确,原因是 Color 属性是 Integer 类型的。public enum Color /Insert code for Enum here.public class Control public int Color /Insert code here 在不正确的示例中,不可能引用 Color 枚举的成员。Color.Xxx 将被解释为访问一个成员,该成员首先获取 Color 属性(C#中为 int 类型)的值,然后再访问该值的某个成员(该成员必须是 System.Int32 的实例成员)2.12 事件a)对事件处理程序名称使用
13、EventHandler 后缀。b)指定两个名为 sender 和 e 的参数。sender 参数表示引发事件的对象。sender 参数始终是object 类型的,即使在可以使用更为特定的类型时也如此。与事件相关联的状态封装在名为 e 的事件类的实例中。对 e 参数类型使用适当而特定的事件类。c)用 EventArgs 后缀命名事件参数类。d)考虑用动词命名事件。e)使用动名词(动词的“ing”形式)创建表示事件前的概念的事件名称,用过去式表示事件后。例 如,可 以 取 消 的Close 事 件 应 当 具 有Closing 事 件 和Closed 事 件。不 要 使 用BeforeXxx/A
14、fterXxx 命名模式。f)不要在类型的事件声明上使用前缀或者后缀。例如,使用 Close,而不要使用 OnClose。g)通常情况下,对于可以在派生类中重写的事件,应在类型上提供一个受保护的方法(称为 OnXxx)。此方法只应具有事件参数 e,因为发送方总是类型的实例。以下示例阐释具有适当名称和参数的事件处理程序。public delegate void MouseEventHandler(object sender,MouseEventArgs e);以下示例阐释正确命名的事件参数类。public class MouseEventArgs:EventArgs int x;int y;pu
15、blic MouseEventArgs(int x,int y)this.x=x;this.y=y;public int X get return x;public int Y get return y;2.13 集合集合是一组组合在一起的类似的类型化对象,如哈希表、查询、堆栈、字典和列表,集合的命名建议用复数。2.14 表a)在命名表时,用单数形式表示名称。例如,使用 Employee,而不是 Employees b)在 命 名 表 的 列 时,不 要 重 复 表 的 名 称;例 如,在 名 为Employee 的 表 中 避 免 使 用 名 为EmployeeLastName 的字段c)不
16、要在列的名称中包含数据类型。如果后来有必要更改数据类型,这将减少工作量2.15 杂项a)尽量减少使用缩写,而是使用以一致方式创建的缩写。缩写应该只有一个意思;同样,每个缩写词也应该只有一个缩写。例如,如果用min 作为 minimum 的缩写,那么在所有地方都应这样做;不要将min 又用作minute 的缩写。b)在命名函数时包括返回值的说明,如GetCurrentWindowName()。c)与过程名一样,文件和文件夹的名称也应该精确地说明它们的用途。2.16 措词避免使用与常用的.NET 框架命名空间重复的类名称。例如,不要将以下任何名称用作类名称:System、Collections、F
17、orms 或 UI。有关 .NET 框架命名空间的列表,请参阅类库。另外,避免使用和以下关键字冲突的标识符。AddHandler AddressOf Alias And Ansi As Assembly Auto Base Boolean ByRef Byte ByVal Call Case Catch CBool CByte Cchar CDate CDec CDbl Char Cint Class CLng CObj Const Cshort CSng CStr CType Date Decimal Declare Default Delegate Dim Do Double Each E
18、lse ElseIf End Enum Erase Error Event Exit ExternalSource False Finalize Finally Float For Friend Function Get GetType Goto Handles If Implements Imports In Inherits Integer Interface Is Let Lib Like Long Loop Me Mod Module MustInherit MustOverride MyBase MyClass Namespace New Next Not Nothing NotIn
19、heritable NotOverridable Object On Option Optional Or Overloads Overridable Overrides ParamArray Preserve Private Property Protected Public RaiseEvent ReadOnly ReDim Region REM RemoveHandler Resume Return Select Set Shadows Shared Short Single Static Step Stop String Structure Sub SyncLock Then Thro
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NET 编程 规约
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内