VisualStudio 2008c#编程规范

 

命名规范制定意义

   1 方便代码的交流和维护,便于日后自己的再次阅读。
   2
不影响编码的效率,不与大众习惯冲突。
   3
使代码更美观、阅读更方便。
   4
使代码的逻辑更清晰、更易于理解

命名规范制定原则

首要原则

有意义的,描述性的词语来命名。能够一眼看出它作什么。别使用会引起误解的名字。如果名字一目了然,就无需用文档来解释方法的功能了

1. 除约定俗成的,别用缩写。用name, address, salary等代替 nam, addr, sal

2. 除用于循环,别使用单个字母的变量象i, n, x 等. 而要使用 index, temp等。
for ( int i = 0; i < count; i++ ){ ...}

其他习惯

l 除了界面控件外,不要使用类型前缀。比如:使用名称amount,而不是 intAmount;

l 类:使用名词、名词短语命名。比如:public class FileStream;

l 方法:使用动词、动词短语开始。比如:CreateUser(), RemoveAt()等;

l 接口:以 I 开始,后面加上名词、名词短语、形容词命名。比如:IDisposable;

l 常量:所有单词大写,多个单词之间用 "_" 隔开。public const string PAGE_TITLE = "Welcome";

l 命名空间:基本格式:

CompanyName/ProjectName.TechnologyName[.Feature][.Design]

a) CompanyName/ProjectName:公司名、项目名称或产品名称;

b) TechnologyName:稳定的、公认的技术名称或架构层次名称;

c) [.Feature][.Design]:可选的功能与设计;

规范

1、用pascal规则来命名方法和类.(第一个单词首字母大写,后面连接的每个单词首字母都大写)
public class DataBase 
public void GetDataTable()
2
类:使用名词、名词短语命名。比如:public class FileStream
2.
camel规则来命名局部变量和方法的参数. (第一个单词不大写,后面连接的单词首字母大写
public void AddUser(string userId, byte[] password)
{ string userName;}

3.
所有的成员变量前加前缀 _ 
public class Database 
{ private string _connectionString; } 

4.
接口的名称加前缀 I
interface ICompare 
{ int compare(); }

5.
自定义代码属性类以Attribute结尾
public class OperationAttribute : Attribute 

6.
自定义的异常以Exception结尾 
public class AppException : Exception 
7.
方法的命名.一般将其命名为动宾短语,动词+对象
GetRecordData();GetPath();CreateFile();
8.
代码的缩进.要用Tab,而不要用space.
9.
使用带有说明性的变量名。
  (a)避免单字符串的变量名,使用类似于indextemp这样有意义的名字。
  (b)对于publicprotected类型的变量避免使用匈牙利表示法。
  (c)不要缩写单词。
10.
所有的类成员变量应该被声明在类的顶部,并用一个空行把它们和方法以及属性的声明区分开.
11.
用有意义的名字命名namespace,如:产品名、公司名
12.
建议局部变量在最接近使用它时再声明
13.
使用某个控件的值时,尽量命名局部变量
14.
把引用的系统的namespace和自定义或第三方的用一个换行把它们分开
15.
文件名要能反应类的内容,最好是和类同名,一个文件中一个类或一组关连类
16.
目录结构中要反应出namespace的层次.
17.
大括号"{"要新起一行 .
18.
在和你的代码缩进处于同一个级别处为该行代码添加注释

控件命名

控件的名称中需要加上前缀,之所以这样做是为了区分界面的控件和普通的对象,由于界面修改往往非常频繁,区分开来能使你更快速的找到控件,从而修改界面。举一个例子:

界面有10TextBox10Label。一个TextBox对应一个Label,为了完成读写,你至少要有20条语句来从控件进行取、赋值操作,如果有前缀的话,输入this.txt,你就几乎马上能找到这个控件。反之,如果没有前缀,由于窗口或页面对象拥有大量的属性和变量(>100个),你将花费大量时间来查找。另外一个TextBox对应一个Label(一个代表值,一个代表名称),它们往往指同一样事物,如果有前缀,就很容易区分这两个控件。

控件

前缀

控件

前缀

控件

前缀

Label

lbl

CompareValidator

cv

 

 

TextBox

txt

RangeValidator

rv

 

 

Button     

btn

RegularExpressionValidator

rev

 

 

CheckBox

chk

ValidatorSummary 

vs

 

 

RadioButton

rdo

GridView

gv

 

 

CheckBoxList

cbl

MultiView

mv

 

 

RadioButtonList

rbl

View

vw

 

 

ListBox

lst

HiddenField

hf

 

 

DropDownList

ddl

 

 

 

 

DataGrid 

dg

 

 

 

 

DataList

dl

 

 

 

 

Image 

img

 

 

 

 

Table   

tbl

 

 

 

 

Panel        

pnl

 

 

 

 

LinkButton

lbt

 

 

 

 

ImageButton  

imgbtn

 

 

 

 

Calender

cld

 

 

 

 

RequiredFieldValidator 

rfv

 

 

 

 

 

posted @ 2008-09-11 21:51  Jack.Net  阅读(663)  评论(1编辑  收藏  举报