c#代码规范

本文概述了编写可靠C#代码的规范,强调了文体、代码组织、命名、声明等方面的最佳实践,旨在提高代码的可读性、维护性和生产效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面的这些是我在综合看到规范,而总述的,不算是原创,所以我这篇写的是转载,原创地址http://www.cnblogs.com/TerryFeng/archive/2009/10/15/1584099.html,我只是认为这些是重要的,关键的,我可没有那么牛。大笑

1.简介
     本规范为编写可靠的c#代码,使代码易于理解、维护和增强,提高生产效率。同时,将带来更大的一致性,使软件开发团队的效率明显提高。
3.文体
     :描述必须遵循的规范。
     异常类要以“Exception”作为后缀。
     建议:强制类型转换时,在类型和变量之间建议加空格。
     不要:每个函数有效代码(不包括注释和空行)长度不要超过50行。
     避免:避免块内部的变量与外部的变量名相同。
4.代码组织与风格
    4.1要使一个tab为4个空格长。
    4.2要使一个代码快内的代码都统一缩进一个tab长度。
    4.3 空行
  • 建议适当的增加空行,来增加代码的可读性;
  • 在类、接口以及彼此之间要有两行空行;
  • 局部变量与它后边的语句之间要有一行空行;
  • 方法内的功能逻辑部分之间要有一行空行。
4.5. {”,“}”

Ö 开括号“{”放在块的所有者的下一行,单起一行;

Ö 闭括号“}”单独放在代码块的最后一行,单起一行。

4.6. 行宽

     每行代码和注释不要超过70个字符或屏幕的宽度,如超过则应换行,换行后的代码应该缩进一个Tab。

4.7 注释

注释应该增加代码的清晰度;

     保持注释的简洁 ,不是任何代码都需要注释的,过多的注释会影响代码的可读性。

6. 命名

6.1. 命名的基本约定

Ö 使用可以准确说明变量/字段/类的完整的英文描述符,如firstName。对一些作用显而易见的变量可以采用简单的命名,如在循环里的递增(减)变量就可以被命名为 ” i ”。

Ö 尽量采用项目所涉及领域的术语。

Ö 采用大小写混合,提高名字的可读性。为区分一个标识符中的多个单词,把标识符中的每个单词的首字母大写。

避免使用长名字(最好不超过 15 个字母)。

避免使用相似或者仅在大小写上有区别的名字。

6.2. 各种标示符类型的命名约定
6.2.1. 程序集命名

Ö 公司域名(Techstar)+ 项目名称 + 模块名称(可选),例如:

中心系统程序集:Techstar.ProductionCenter;or

中心系统业务逻辑程序集:Techstar. ProductionCenter.Business;

6.2.2. 命名空间命名

Ö 采用和程序集命名相同的方式:公司域名(Techstar)+ 项目名称 + 模块名称。 另外,一般情况下建议命名空间和目录结构相同。例如:

中心系统:Techstar.ProductionCenter;

中心系统下的用户控件:Techstar.ProductionCenter.UserControl;

中心系统业务逻辑:Techstar. ProductionCenter.Business;

中心系统数据访问:Techstar. ProductionCenter.Data;

6.2.3. 类和接口命名

Ö 类的名字用名词;

´ 避免使用单词的缩写,除非它的缩写已经广为人知,如HTTP。

Ö 接口的名字以字母I开头。保证对接口的标准实现名字只相差一个“I”前缀,例如对IComponent的标准实现为Component;

Ö 泛型类型参数的命名:命名为T或者以T开头的描述性名字,例如:

public class List<T>

public class MyClass<TSession>

´ 对同一项目的不同命名空间中的类,命名避免重复。避免引用时的冲突和混淆;

6.2.4. 方法命名

Ö 第一个单词一般是动词

Ö 如果方法返回一个成员变量的值,方法名一般为Get+成员变量名,如若返回的值 是bool变量,一般以Is作为前缀。另外,如果必要,考虑用属性来替代方法,具 体建议见10.1.2节;

Ö 如果方法修改一个成员变量的值,方法名一般为:Set + 成员变量名。同上,考虑 用属性来替代方法;

6.2.5. 变量命名

Ö 按照使用范围来分,我们代码中的变量的基本上有以下几种类型,类的公有变量;类的私有变量(受保护同公有);方法的参数变量;方法内部使用的局部变量。这些变量的命名规则基本相同,见标识符大小写对照表。区别如下:

i. 类的公有变量按通常的方式命名,无特殊要求;

ii. 类的私有变量采用两种方式均可:采用加“m”前缀,例如mWorkerName;

iii. 方法的参数变量采用camalString,例如workerName;

iv. 方法内部的局部变量采用camalString,例如workerName;

´ 不要用_或&作为第一个字母;

Ö 尽量使用短而且具有意义的单词;

Ö 单字符的变量名一般只用于生命期非常短暂的变量。i,j,k,m,n一般用于integer;c,d,e 一般用于characters;s用于string

Ö 如果变量是集合,则变量名用复数。例如表格的行数,命名应为:RowsCount;

Ö 命名组件采用匈牙利命名法,所有前缀均应遵循同一个组件名称缩写列表

6.3. 组件名称缩写列表

缩写的基本原则是取组件类名各单词的第一个字母,如果只有一个单词,则去掉其中的元音,留下辅音。缩写全部为小写。

组件类型

缩写

例子

Label

Lbl

lblNote

TextBox

Txt

txtName

Button

Btn

btnOK

ImageButton

Ib

ibOK

LinkButton

Lb

lbJump

HyperLink

Hl

hlJump

DropDownList

Ddl

ddlList

CheckBox

Cb

cbChoice

CheckBoxList

Cbl

cblGroup

RadioButton

Rb

rbChoice

RadioButtonList

Rbl

rblGroup

Image

Img

imgBeauty

Panel

Pnl

pnlTree

TreeView

Tv

tvUnit

WebComTable

Wct

wctBasic

ImageDateTimeInput

Dti

dtiStart

ComboBox

Cb

cbList

MyImageButton

Mib

mibOK

WebComm.TreeView

Tv

tvUnit

PageBar

Pb

pbMaster

7. 声明

Ö 每行只有一个声明,如果是声明i,j,k之类的简单变量可以放在一行;

Ö 除了for循环外,声明放在块的最开始部分。for循环中的变量声明可以放在for语句中。如:for(int i = 0; I < 10; i++) 。

´ 避免块内部的变量与它外部的变量名相同。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值