.NET中的命名规则

 编者按: 良好 的命名 规范可以为团队合作开发推波助澜,无论在项目开发,还是产品维护上都起到了至关重要的作用。应该说命名规范是一种约定,也是程序员之间良好沟通的桥梁。另 外古人相信只要知道一个人真正的名字就会获得凌驾于那个人之上的不可思议的力量。只要给事物想到正确的名字,它就可以带来比代码更强的力量。如果所有的命 名都与其自然相适合,则关系清晰,含义可以推导得出,一般人的推想也能在意料之中。
  在本期的月刊中,我们将围绕着“命名规则”这个主题展开讨论。收集各种B/S语言下常见命名规范,希望对各位开发能有所帮助。

 

.NET中的命名规则

 

名称空间的命名  

   命名名称空间的一般规则如下:
   CompanyName.TechnologyName
  这样,我们看到的名称空间应该是这样的:  
    Microsoft.Office
   PowerSoft.PowerBuilder
                              

  注意:这只是一个原则。第三方公司可以选择其它的名字。
  避免用公司名称或其它著名品牌的名称作为名称空间的前缀,这样会造成两个公布的名称空间有同一个名称的可能性。
  例如: 将微软提供的Office自动类命名为Microsoft.Office

  使用Pascal大写方式,用逗号分隔逻辑成分。
  例如: Microsoft.Office.PowerPoint

  如果你的品牌使用的是非传统大写方式,那么一定要遵循你的品牌所确定使用的大写方式,即使这种方式背离了通常的名称空间大写规则。
  例如: NeXT.WebObjects
     
ee.cummings


类和类成分的命名

   类的命名原则是用名词或名词短语命名类,使用Pascal大写。减少类名中缩写的使用量。不要使用任何类前缀(比如C),不要使用带下划线的字符。
  例如:
public class FileStream {}
      public class Button {}
      public class String {}

变量的命名

   名称中各单词首字母均为大写。
  例如:
FindLastRecord
      RedrawMyForm
  在内部范围中避免使用与外部范围中的名称相同的名称。若访问错误变量,则会产生错误结果。若变量与同一名称的关键字冲突,则必须在关键字前加适当的类型库以作标识。
  例如: 若有一个名为 date 的变量,只能通过调用 System.Date 来使用内部 Date 函数。

函数和方法的命名

   函数和方法的命名应该以动词开始,使用Pascal大写。不要使用带下划线的字符。
  例如:
InitNameArray
      CloseDialog

接口命名原则

   使用名词或名词短语,或者描述行为的形容词来命名接口,使用Pascal大写。 减少接口名中缩写的使用量,在接口名前加前缀I,以表示这个类型是一个接口。
   例如: IComponent(描述性名词)
       ICustomAttributeProvider(名词短语)
       IPersistable(形容词)

参数的命名   

   使用描述性参数名。参数名应该具有足够的描述性,这样在大多数情况下参数名和它的种类可以用来确定它的意思。根据参数的意思来命名参数,而不是根据参数 的种类来命名。我们希望开发工具可以用很方便的方式提供关于参数种类的信息,这样参数名可以得到更好的使用,可以对语义而不是对种类进行描述。但是偶尔使 用根据类型命名的参数名也是完全可以的。不要使用保留参数。如果在下一个版本中需要更多的数据,可以增加进来。
  例如: Type GetType (string typeName)
     string Format (string format, object [ ] args)

属性的命名

   用名词或名词短语命名属性,属性与类型要一样。 用与一个类型的名称相同的名字来命名属性时,就使这个属性的类型成为那个类型。虽然听起来有些奇怪,但这是正确的。
  例如: public enum Color {...}
      public class Control {
      public Color Color {get {...} set {...}}
      }

事件的命名

   用 EventHandloer后缀命名事件处理程序,使用名为sender和e的两个参数,Sender参数代表提出事件的对象。Sender参数永远是一 个类型对象,即使它可能使用了更为特定的类型,与事件相关的状态被封装在一个名为e的事件类范例中。要使用这个类型的正确的、特定的事件类。
  例如: public delegate void MouseEventHandler(object sender, MouseEvent e);
  命名事件名时,需要有之前和之后的时态概念,因此要使用现在时态和过去时态(不要使用BeforeXxx//AfterXxx的方式)。例如,可以被取消的结束事件就有Closing事件和Closed事件。

长项和常用项的命名

   可使用缩写使名称长度适中,通常,多于 32 个字符的变量名在低分辨率的监视器上难以阅读。同时,请确保缩写在整个应用程序中保持一致。
  例如: 可以使用“HTML”代替“HyperText Markup Language”。

代码书写格式规范

  •  
    • 文件之中不得存在无规则的空行,比如说连续十个空行。一般来讲函数与函数之间的空行为2-3行
    • 在函数体内部,在逻辑上独立的两个函数块可适当空行,一般为1-2行。
    • 每行长度尽量避免超过屏幕宽度,应不超过80个字符。
    • 尽量用公共过程或子程序去代替重复的功能代码段。
    • 使用括号清晰地表达算术表达式和逻辑表达式的运算顺序。如将 x=a*b/c*d 写成 x=(a*b/c)*d可避免阅读者误解为x=(a*b)/(c*d)。
    • 避免采用过于复杂的条件测试。
    • 避免过多的循环嵌套和条件嵌套。
    • 一个函数不要超过200行。一个文件应避免超过2000行。
    • 避免使用goto语句。
    • 避免采用多赋值语句,如x = y = z;。

代码注释规范

   .cs文件的注释
   所有.cs文件开头都要加上注释,写明文件创建时间、作者、用途概述等
   例如:

//********************************************************

//新增日期:2004.7.19

//作者:XXX

//內容说明: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

//********************************************************

   函数过程注释
  所有的函数体开头都要加上注释,所以注释使用.NET注释规范。
   例如:

/// <summary>

/// 构造函数

/// </summary>

/// <param name='is_xxx1'>示例参数1</param>

/// <param name='is_xxx2'>示例参数2</param>

public UpgradeThread(string is_xxx1, string is_xxx2)

{

//…
}

   常量变量注释
  所有的常量变量,无论是全局还是局部使用的,凡是对代码整体起到关键性做用的都需要加上注释。
   例如:

/// <summary>

/// 当前线程指向的备份文件本地保存路径

/// </summary>

public string StorePath = '';

   代码修改注释
  当开发者维护以前的程序代码时,需要在修改处的开始及结尾,加上自己的注释信息

   例如:

//BEGIN 2004-7-19 Jayson 修正了XXX问题
略…
//END 2004-7-19 Jayson

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值