C#语言开发规范

1.  命名规范

a) 类

【规则1-1】使用Pascal规则命名类名,即首字母要大写。

eg:

Class Test

{

...

}

【规则1-2】使用能够反映类功能的名词或名词短语命名类。

【规则1-3】不要使用“I”、“C”、“_”等特定含义前缀。

【规则1-4】自定义异常类应以Exception结尾。

eg:

Class TestException

{

...

}

【规则1-5】文件名要能反映类的内容,最好是和类同名。

b) 类字段(类成员)

【规则2-1】用camel规则来命名类成员变量名称,即首单词(或单词缩写)小写。

【规则2-2】类字段变量名前可加“_”前缀。

【规则2-3】坚决禁止在普通变量前加“m_”(这是VC老命名规则)。

eg:

Class Test

{

privatestring myName;

privatestring _myCoCo;

...

}

c)方法

【规则3-1】方法名采用Pascal规则,第一个字符要大写。

【规则3-2】方法名应使用动词或动词短语。

【规则3-3】类中访问修饰符或功能相同的方法应该放在一起, 且公共或实现接口的方法在前。

eg:

Class Test

{

...

publicvoid GetData(...)

{

...

}

privatevoid GetName(...)

{

...

}

privatestatic void GetCount(...)

{

...

}

}

d)属性

【规则4-1】使用名词定义属性,属性使用Pascal规则,首字符大写

【规则4-2】属性和相应字段名称要关联, 可以使用“重构”菜单来生成属性。

eg:

Class Test

{

private string myName;

public string MyName

{

set

{

myName = Value;

}

get

{

return myName;

}

}

}

e)参数

【规则5-1】参数采用camel规则命名,且首字符小写。

【规则5-2】使用描述性参数名称,参数名称应当具有最够的说明性。

【规则5-3】不要给参数加匈牙利语类型表示法的前缀。

【规则5-4】检查方法所有输入参数的有效性。

eg:

ClassTest

{

public void GetData(string name,string strFlag)

{

...

}

}

f)常量

【规则6-1】只读常量使用Pascal命名规则,即首字母大写。

【规则6-2】枚举名使用Pascal规则命名,枚举成员本质属于常量,命名规则同上。

【规则6-3】枚举值从小到大顺序定义。

【规则6-4】静态字段或属性采用Pascal规则,即首字符大写。

eg:

ClassTest

{

public const double Pi = 3.14159365753;

private readonly double Pai = 3.14159365753;

}

g)接口

【规则7-1】接口定义使用Pascal规则,且必须以大写“I”开头。

【规则7-2】接口名称要有意义,中间不要有下划线“_”等字符。

【规则7-3】如果类实现了接口,名称尽量和接口相同, 只是省掉“I”字符。

eg:注意这里的接口修饰符只能用public和internal

interfaceITest

{

...

}

h)事件

【规则8-1】委托名称采用Pascal规则,即首字符大写。

【规则8-2】定义事件的委托要使用EventHandler后缀,且包括sender和e两个参数。

【规则8-3】事件用到的参数,名称要带EventArgs后缀。

eg:

ClassTest

{

private delegate void DoTask();

private event DoTask DoTaskEventHandler;

private event DoTask DoTaskEventHandler(Object sender,EventArgse);

private event DoTaskDoTaskEventHandler2(string   strEventArgs)

{

...

}

...

}

i) 命名空间

【规则9-1】命名空间名称采用Pascal规则,且首字符大写。

【规则9-2】命名空间名称尽量反映其内容所提供的整体功能。

eg:

namespace MyTest

{

ClassTest

{

...

}

...

}

2.  注释规范

a)文件头部注释

【规则1-1】文件都包含文件头, 要说明文件名、作者、创建时间、变更记录。

【规则1-2】推荐采用.NET形式书写头部注释。(待考查)

b)类及其成员注释

【规则2-1】对方法和类使用“///”三斜线注释。

【规则2-2】代码行文注释采用“//”和“/**/”进行,应该尽量说明问题。

3.行文规范

a)缩写规范

【规则1-1】标识符应当直观可望文知意,不提倡使用任何缩写。

【规则1-2】字符串变量推荐是用“str”或“s”开头,采用string.Empty来初始化。

【规则1-3】普通对象可以以“obj”开头。

【规则1-4】缩写可自行定义,一般取单词的前/后字符组成,以含义直观为准则。

【规则1-5】一般情况下不要让缩写破坏标识符的含义。

b)排版

【规则2-1】每行语句至少占一行,如果语句过长(超过一屏),则该语句断为两行显示。

【规则2-2】把相似的内容放在一起,比如字段、属性、方法、事件等,使用“#region--#endregion”命令分组。

【规则2-3】多个程序元素进行对等操作时, 操作符之前、之后或者前后都要加空格。

【规则2-4】每个方法的源程序行数原则上应该少于200行。(如果超过过多,则需要另写一方法)

【规则2-5】语句嵌套层次不得超过3层。

【规则2-6】避免相同的代码段在多个地方出现。(尽量避免代码重复,能复用则复用)

c)语句结构

【规则3-1】如果使用了异常结构,一定要处理异常, 一般是要写日志文件。

【规则3-2】分支语句不应该使用复杂长条件, 应该将长条件封装成方法。

【规则3-3】switch语句,case后面必须接break。

【规则3-4】禁止使用goto语句进行跳转。

【规则3-5】行文中严禁出现“魔数”,特定含义的常数必须定义成枚举或常量。

【规则3-6】不同类型的操作符混合使用时,使用括号给出优先级。

【规则3-7】不允许使用复杂的操作符组合等。

【规则3-8】循环、判断语句的程序块部分用花括号括起来, 即使只有一条语句。(return;待议)

【规则3-9】在switch语句中总是要有default字句,建议使用断言。

【规则3-10】每个类和方法完成单一的功能,不设计多用途面面俱到的类或方法。

【规则3-11】严禁使用未经初始化的变量,变量通常使用构造方法来初始。

d)代码缩进

【规则4-1】碰到大括号要换行。

【规则4-2】不允许使用Java中的括号换行规范。

e)大小写

【规则5-1】不要创建名称相同,但大小写区别的任何元素。

【规则5-2】应当大写仅有两个字符的缩写。(如果只有两个字符,则都大写)

【规则5-3】不要把易混淆的数字和字符放在一起。

【规则5-4】使用英文命名标识符。

f)重名规范

【规则6-1】不允许变量名、类名、属性名、 方法名等与系统标识符重名。(系统标识符见附表)

g)SQL编码规范

【规则7-1】SQL语句全部大写。(本人的习惯是小写,为了性能,最好是大写,我自己也得把习惯改改咯,哈哈哈)

【规则7-2】对较为复杂的SQL语句加上注释,说明其功能。

【规则7-3】连接符OR、IN、AND、以及=、<=、>=等前后加空格。

【规则7-4】使用明确的列代替 SELECT *。

h)软件架构

【规则8-1】数据库中每一张表对应一个实体类/数据传输对象(DTO)。

【规则8-2】实体类名称使用表名,也可带有Dto后缀。

【规则8-3】三层架构应当合理使用,不应生搬硬套。

【规则8-4】三层架构元素推荐使用后缀:

数据传输对象         XxxxDto

DAO工厂            XxxDAOFactory

DAO接口            IXxxxDAO

服务接口           IxxxxService

DAO的数据库实现     XxxxDAOOracle/XxxxDAOInfomix

业务逻辑           XxxxManager

i)系统

【规则9-1】在我国内不建议随便使用设计模式等代码模式,因为并不流行。

【规则9-2】系统输入、资源操作(如内存分配、文件及目录操作)、网络操作(如通信、调用等)、任务间的操作(如通信、调用等)时必须进行错误、超时、或则异常处理。

【规则9-3】模块的编写应有完善的测试方面的考虑。

附表

表1 各种类型命名规范总结


类型


命名规则


注意事项


实例


类或结构


Pascal


首字符大写


HttpContext


接口


Pascal


加前缀I


IDataAdaper


枚举名


Pascal


首字符大写


CommandType


枚举值


Pascal


首字符大写


CommandType.Text


事件


Pascal


首字符大写


SelectedIndexChanged


自定义异常


Pascal


加后缀Exception


ArgumentException


类公共字段


Pascal


首字符大写


MaxValue(或_MaxValue)


方法


Pascal


首字符大写


ToString()


命名空间


Pascal


首字符大写


System.Xml


属性


Pascal


首字符大写


BackColor


保护或私有字段


Camel


首字符小写


myVariable


参数


Camel


首字符小写


cmdText

表2 数据类型缩写规则


数据类型


数据类型缩写


标准命名实例


Bool


b/is


IsVisable


Float


F


FPrice


Double


D


DPrice


Unit


U


UAge


Int


I


INumber


Char


Ch


ChCode


Byte


Bt


BtImages


String


Str


StrName


Struct


St


StStudent


Window


Wnd


WndMain


ArrayList


Lst


LstStudents


Array


Arr


ArrStudents


Hashtable


Ht


Htstudents

表3 Windows控件缩写规则


控件类型


控件名称


控件类型缩写


实例


Label


标签框


Lbl


LblMessage


LinkLabel


超链接标签框


Llbl


LlblToday


Button


按钮


Btn


BtnSave


TextBox


文本框


Txt


TxtName


MainMenu


菜单栏


Mmnu


MmnuFile


CheckBox


多选框


Chk


ChkStock


RadioButton


单选框


Rbtn


RbtnSelected


GroupBox


组合框


Gbx


GbxMain


PictureBox


图片框


Pic


PicImage


Panel


Pnl


PnlBody


DataGrid


Dgrd


DgrdView


ListBox


Lst


LstProducts


CheckedListBox


Clst


ClstChecked


ComboBox


组合框


Cbo


CboMenu


ListView


列表视图


Lvw


LvwBrowser


TreeView


树视图


Tvw


TvwType


TabControl


Tctl


TctlSelected


DateTimePicker


Dtp


DtpStartDate


HscrollBar


Hsb


HsbImage


VscrollBar


Vsb


VsbImage


Timer


Tmr


TmrCount


ImageList


Ilst


IlstImage


ToolBar


工具栏


Tlb


TlbManage


StatusBar


状态栏


Stb


StbFootPrint


OpenFileDialog


Odlg


OdlgFile


SaveFileDialog


Sdlg


SdlgSave


FoldBrowserDialog


Fbdlg


FbdlgBrowser


FontDialog


Fdlg


FdlgFoot


ColorDialog


Cdlg


CdlgColor


PrintDialog


Pdlg


PdlgPrint

表 4 数据库对象缩写规范


数据库对象


名称


简写


实例


Connection


Con


ConNorthwind


Command


Cmd


CmdReturnProducts


Parameter


Parm


ParmProductID


DataAdapter


Dap


DapProducts


DataReader


Dtr


DtrProducts


DataSet


Ds


DsNorthwind


DataTable


Dt


DtProduct


DataRow


Drow


DrowRow


DataColumn


Dcol


DcolProductID


DataRelation


Drl


DrlMasterDetail


DataView


Dvw


DvwFilteredProducts

时间: 2024-10-05 00:07:48

C#语言开发规范的相关文章

C#语言开发规范-ching版

学习C#之初,始终不知道怎么命名比较好,很多时候无从命名,终于有一天我整理了一份命名规范文档,自此我就是按照这个命名规范书写代码,整洁度无可言表,拙劣之处请大家斧正,愚某虚心接受,如有雷同,不胜荣幸 C#语言开发规范 作者ching 1.  命名规范 a) 类 [规则1-1]使用Pascal规则命名类名,即首字母要大写. eg: Class Test { ... } [规则1-2]使用能够反映类功能的名词或名词短语命名类. [规则1-3]不要使用“I”.“C”.“_”等特定含义前缀. [规则1-

智能合约从入门到精通:Solidity语言的开发规范和开发流程

简介:上面介绍的在Solidity中嵌入的内联汇编语言也可以单独使用.实际上,它是被计划用来作为编译器的一种中间语言.本文我们将介绍开发智能合约过程中Solidity语言的开发规范和开发流程. Solidity作为编译器的一种中间语言.在开发智能合约时需要遵守相应的开发规范和开发流程. 开发规范 命名规范 目录和文件 目录使用小写,请勿使用特殊符号: 库文件和合约文件统一以.sol为后缀: 合约文件名保持与合约名一致: 文件名采用驼峰命名(首字母大写): 合约.库文件命名 合约名采用驼峰命名(首

华为C语言编程规范

DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd.版权所有 侵权必究All rights reserved密级:confidentiality levelDKBA 2826-2011.52011-06-02 华为机密,未经许可不得扩散 Huawei Confidential 第2页,共61页Page 2 , Total61修订声明Revision

web前端开发规范

本文原创,这里首先声明,转载注明本文出处,翻版必究! web前端开发规范的现实意义 1.提高团队的协作能力 2.提高代码的重复利用率 3.可以写出质量更高,效率更好的代码 4.为后期维护提供更好的支持 5.可读性高 一.命名规则 1.html命名规则: a.文件名称命名规则:统一使用小写英文字母.数字.下划线的组合,不得包含汉字空格和特殊字符 2.命名原则:方便理解.方便查找 b.索引文件命名原则:index.html.index.htm.index.asp.index.aspx.index.j

Web前端开发规范文档(google规范)

(Xee:其实没什么规范约束,但是养成一种好习惯,何乐而不为?) 我推荐去看看google的开发规范,然后从他的当中去总结自己的开发规范. Google HTML/CSS代码风格指南 Google JavaScript 编码规范指南 ------------------------------------------------------------------------------------------------------------------------------- 绝大多数项

开发规范

代码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯. 代码编写规范使用范围:J2EE项目开发. 包命名规范: 目的:包的命名规范应当体现出项目资源良好的划分 servlet类所在包命名规范:公司名称.开发组名称.项目名称.web.servlet 例如:net.linkcn.web.servlet 自定义标签类所在包命名规范:公司名称.开发组名称.项目名称.web.tags 例如:net.linkcn.web.tags 过滤器类所在包命名规范:公司名称.开发组名称.

iOS开发笔记--iOS开发规范

iOS开发规范 原文地址:http://blog.csdn.net/pjk1129/article/details/45146955 引子 在看下面之前,大家自我检测一下自己写的代码是否规范,代码风格是否过于迥异阅读困难?可以相互阅读同伴的代码,是否存在阅读障碍? 若存在晦涩难懂的,理解成本增大的代码,说明你的团队需要自省了. 下面总结一下OC编程中的一些代码规范(苹果官方推荐的).以OC为示例,但不局限于OC,也可以被当作别的编程语言的开发规范约定(仅需要把OC特有的东西按照你所使用的语言的惯

JavaScript 开发规范要求详解

作为一名开发人员(We前端JavaScript开发),不规范的开发不仅使日后代码维护变的困难,同时也不利于团队的合作,通常还会带来代码安全以及执行效率上的问题.本人在开发工作中就曾与不按规范来开发的同事合作过,与他合作就不能用"愉快"来形容了.现在本人撰写此文的目的除了与大家分享一点点经验外,更多的是希望对未来的合作伙伴能够起到一定的借鉴作用.当然,如果我说的有不科学的地方还希望各路前辈多多指教.下面分条目列出各种规范要求,这些要求都是针对同事编码毛病提出来的,好些行业约定的其它规范可

thinkphp开发规范

1.编写目的 ????为了更好的提高技术部的工作效率,保证开发的有效性和合理性,并可最大程度的提高程序代码的可读性和可重复利用性,指定此规范.开发团队根据自己的实际情况,可以对本规范进行补充或裁减. 1.程序员可以了解任何代码,弄清程序的状况: 2.新人可以很快的适应环境: 3.防止新接触PHP的人出于节省时间的需要,自创一套风格并养成终生的习惯: 4.防止新接触PHP的人一次次的犯同样的错误: 5.在一致的环境下,人们可以减少犯错的机会: 6.程序员们有了一致的敌人: 2.整体要求 ????技