C#命名规范 保存一下以备后用


命名规范制定意义

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规则来命名方法和类.(第一个单词首字母大写,后面连接的每个单词首字母都大写)
publicclassDataBase
publicvoidGetDataTable()
2
类:使用名词、名词短语命名。比如:public class FileStream
2.
camel规则来命名局部变量和方法的参数.(第一个单词不大写,后面连接的单词首字母大写)
publicvoidAddUser(stringuserId,byte[]password)
{stringuserName;}

3.
所有的成员变量前加前缀_
publicclassDatabase
{privatestring_connectionString;}

4.
接口的名称加前缀I
interfaceICompare
{intcompare();}

5.
自定义代码属性类以Attribute结尾
publicclassOperationAttribute:Attribute

6.
自定义的异常以Exception结尾
publicclassAppException: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

优质内容筛选与推荐>>
1、API网关
2、JSON Web Token (JWT) - Introduction
3、P1270 “访问”美术馆
4、16- 软件测试框架总结
5、layui demo


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号