ASP.net/C#编码规范


ASP.net/C#编码规范
2010年06月03日
  以下对本节使用的名词进行说明。 Pascal 所有单词第一个字母大写,其他字母小写。
  例如:public void GetUserNameByGuid() Camel 除了第一个单词,所有单词第一个字母大写,其他字母小写。
  例如:string userName Hungarian 对象类型(小写)+功能名称(大写,可以无此段)+操作对象(大写)。
  例如: 命名规范的具体要求详见表。 项 编码形式 相关例子 注释 文件 Pascal DatabaseConnector 使用名词来描述类 类 Pascal DatabaseConnector 类的名称应该与定义它们的文件的名称匹配 接口 Pascal IDatabaseConnector 接口名称以一个字母I开头 方法 Pascal CalculateBalance 使用动词来描述方法 私有和受保护的实例字段 camel private float accountBalance   公共实例字段 Pascal CustomerName   私有和受保护的类字段 camel protected static int numberOfAccounts   公共类字段 Pascal public static bool HasGoodCredit   static final 全部大写 public static final decimal MINNUMBALANCE = 100   局部变量 camel string accountNumber = FindAccountByCustomerName(customerName)   循环计数 全部小写 int i =0; while(i  对象类型名缩写见控件匈牙利命名缩写表 命名空间 Pascal namespace DataLayer   单元测试方法 Pascal TestFindAllCustomers 单元测试名称以单词Test开头。 解决方案 Pascal NorthWindTrader   项目 Pascal DataLayer   控件匈牙利命名缩写表。 标准控件 Button btn     CheckBox chk     CheckedListBox ckl     ComboBox cmb     DateTimePicker dtp     Label lbl     LinkLabel llb     ListBox lst     ListView lvw     MaskedTextBox mtx     MonthCalendar cdr     NotifyIcon icn     NumeircUpDown nud     PictureBox pic     ProgressBar prg     RadioButton rdo     RichTextBox rtx     TextBox txt     ToolTip tip     TreeView tvw     WebBrowser wbs     容器控件 FlowLayoutPanel flp     GroupBox grp     Panel pnl     SplitContainer spl     TabControl tab     TableLayoutPanel tlp     菜单和工具栏 ContextMenuStrip cms     MenuStrip mns     StatusStrip ssr     ToolStrip tsr     ToolStripContainer tsc     数据 DataSet dts     DataGridView dgv     BindingSource bds     BindingNavigator bdn     ReportViewer rpv     Repeater rpt 对话框 ColorDialog cld     FolderBrowserDialog fbd     FontDialog fnd     OpenFileDialog ofd     SaveFileDialog sfd     组件 BackgroundWorker bgw     DirectoryEntry dre     DirectorySearcher drs     ErrorProvider err     EventLog evl     FileSystemWatcher fsw     HelpProvider hlp     ImageList img     MessageQueue msq     PerformanceCounter pfc Process prc SerialPort spt ServiceController scl Timer tmr 印刷 PageSetupDialog psd     PrintDialog prd     PrintDocument pdc     PrintPreviewControl prv     PrintPreviewDialog ppd     水晶报表 CrystalReportViewer crv     ReportDocument rpd     其他 DomainUpDown dud     HScrollBar hsc     PropertyGrid prg     Splitter spl     TrackBar trb     VScrollBar vsc     1、函数、属性、类等注释
  请使用///三斜线注释,这种注释是基于XML的,不仅能导出XML制作帮助文档,而且在各个函数、属性、类等的使用中,编辑环境会自动带出注释,方便你的开发。以protected,protected Internal,public声明的定义注释请都以这样命名方法。 类型 相关例子 说明 文档注释 ///  /// This class represents a bank account ///  用于文档类和方法 行末注释 int myCount = 0;   // Keep track of how many times ... 用于描述某些含义不太清晰的事物的目的 单行注释 // Here is where we gather account data 用于描述后续事物或者代码块的目的 多行注释 /* Here is where we gather account data */ 用于在代码块处进行注释,或者用于描述后续多行代码的目的 2、逻辑点注释
  在我们认为逻辑性较强的地方加入注释,说明这段程序的逻辑是怎样的,以方便我们自己后来的理解以及其他人的理解,并且这样还可以在一定程度上排除 BUG。在注释中写明我们的逻辑思想,对照程序,判断程序是否符合我们的初衷,如果不是,则我们应该仔细思考要修改的是注释还是程序了… 1、注意运算符的优先级,我们应该尽量使用括号明确表达式的操作顺序,避免使用默认优先级,给我们以及维护人带来困扰。
  2、避免使用不易理解的数字,用有意义的标识来替代(枚举和常量),例如:
  if(productType == 0) 
  … 
  else if (productType == 1) 
  … 
  以上为不合格的做法,以下为推荐使用的方法:
  if(productType == ProductType.CD ) 
  … 
  else if (productType == ProductType.DVD ) 
  …  空行与空格:尽管编译器可以忽略空行与空格,但是空行与空格可以将不同逻辑的代码单元分离,从而提高代码的可读性。
  在下述几种情况下应该使用一个空行: l  方法之间
  l  声明和语句之间
  l  代码的逻辑段之间
  l  单行或者多行注释之前 在下述几种情况下应该使用一个空格: l  带圆括号的关键字之后
  l  参数列表的逗号之后
  l  数据操作符的前后
  l  在for语句中,用于将语句的3个逻辑段分开 以上格式可以在Visual Studio中使用ctrl+k,ctrl+d自动排版。 每个解决方案都应该拥有下述项目: l  业务项目(business project)仅存放业务项目。
  l  数据项目(data project)处理数据库和其他用于检索或者更新数据目的的遗留系统的访问。
  l  表示项目(presentiation project)处理使用系统的终端用户所需的所有视图。
  l  测试项目(test project)存放应用程序所有的单元测试。

猜你喜欢

转载自kpv54kpv.iteye.com/blog/1361176