C#后台编码规范

一、目标

统一代码风格、命名规范,增强代码可读性和可维护性,供日常开发工作中时参考,以提高团队协作的开发效率。

二、概述

此规范为C#后台项目编码规范。

三、术语

Pascal 大小写:将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用Pascal 大小写。例如:BackColor

Camel 大小写:标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如: backColor

四、注释规范

4.1、类文件注释规范

SQL
/********************************************
// 功能描述:
// 创建人:姓名
// 创建时间:$time$
// 描述:
// 修改人:
// 修改时间:
// 修改描述:
// 修改人:
// 修改时间:
// 修改描述:
********************************************/

修改创建类模板方法:

  1. 找到VS目录C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ItemTemplates\CSharp\Code\2022
  2. 分别修改Class、interface、WebClass文件夹下Class.cs文件

4.2、方法规范

所有方法必须在其定义前增加此方法注释

/// <summary>
/// …
/// </summary>
/// <param name=””></param>
/// <returns></returns>

XML注释各属性说明:

标记

说明

备注

<c>

提供了一种将说明中的文本标记为代码的方法

 

<code>

提供了一种将多行指示为代码的方法

 

<example>

可以指定使用方法或其他库成员的示例。一般情况下,这将涉及到 <code> 标记的使用。

 

<exception>

对可从当前编译环境中获取的异常的引用。

 

<include>

得以引用描述源代码中类型和成员的另一文件中的注释。

 

<list>

用于定义表或定义列表中的标题行。

 

<para>

用于诸如<summary>、<remarks> 或 <returns> 等标记内,使您得以将结构添加到文本中。

 

<param>

应当用于方法声明的注释中,以描述方法的一个参数。

 

<paramref>

提供了一种指示词为参数的方法。

 

<permission>

得以将成员的访问记入文档。

 

<remarks>

用于添加有关某个类型的信息,从而补充由 <summary> 所指定的信息。

 

<returns>

应当用于方法声明的注释,以描述返回值。

 

<see>

得以从文本内指定链接。

 

<seealso>

对可以通过当前编译环境进行调用的成员或字段的引用。

 

<summary>

应当用于描述类型或类型成员。

 

<value>

得以描述属性。

 

4.3、属性注释

在类的属性必须以以下格式编写属性注释:

/// <summary>
///属性说明
/// </summary>

4.4、单行注释

使用“//”用于方法内的代码注释。如代码或代码段的解释。

4.5、多行注释

使用“/* */”该类注释用于说明一段代码的逻辑、运算步骤、注意事项等需要详细说明的内容。

/* 注释
* 注释
* 注释 */

4.6、变量注释

  1. 局部变量使用“//”单行注释;
  2. 全局变量使用“///”文档注释

五、命名规范

要尽量使用项目所涉及领域的术语。

采用大小写混合方式,提高命名的可读性。

5.1、基本约定

标识符

命名规则

示例

命名空间

Pascal

namespace EADO.Police.PoliceWorkPlatForm

Pascal

public class ControlHelper

接口

Pascal

public interface ICommonBLL

方法

Pascal

public List<string> GetUserList()

属性

Pascal

public string Name { get; set; }

事件

Pascal

public event EventHandler Changed;

私有字段

Camel

private string fieldName;

非私有字段

Pascal

public string FieldName;

枚举

Pascal

public enum Color

    {

        Red = 0,

        Blue = 1

    }

参数

Camel

public void UpdateData(string fieldName)

局部变量

Camel

string fieldName;

5.2、命名空间命名

首单词以 EADO 开头,以英文点 “.” 分隔;例如:EADO.Mobile.WebApi

5.3、类和接口命名

  1. 类的命名:避免使用单词缩写,除非它的缩写已经广为人知。
  2. 接口命名:要以字母I开头。保证接口与实现名字只差一个“I”前缀。
  3. 泛型类型参数的命名:命名要为T或者以T开头的描述性名字。
  4. 对同一个项目不同命名空间中的类,命名避免重复。避免引用时冲突和混淆。

5.4、方法命名

  1. 第一个单词为动词。
  2. 方法返回一个成员变量的值,方法名要以Get+变量名命名。
  3. 方法返回一个bool值变量,方法以Is作为前缀。
  4. 获取所有模块列表:Get[模块名]List
  5. 通过Code(单个条件)获取模块列表:Get[模块名]ListByCode
  6. 通过多个条件获取模块列表:Get[模块名]ListByCondition
  7. 通过参数获取模块分页列表:Get[模块名]PageList
  8. 通过参数获取模块树形列表:Get[模块名]Tree
  9. 通过参数获取模块导出列表:Get[模块名]ExportList
  10. 通过参数获取所有下级(包含本身)列表信息:Get[模块名]SelfAllChildList
  11. 通过参数获取所有下级(不包含本身)列表信息:Get[模块名]AllChildList
  12. 通过参数获取下一级列表信息:Get[模块名]ChildList
  13. 通过主键获取实体信息:Get[模块名]Entity
  14. 通过Code(单个条件)获取实体信息:Get[模块名]EntityByCode
  15. 通过多个条件获取实体信息:Get[模块名]EntityByCondition
  16. 保存模块表单(新增、编辑):Save[模块名]Form
  17. 删除模块信息:Delete[模块名]
  18. 其他接口:[操作][模块名]
  19. 导入接口:Import[Excel || Word][模块名]
  20. 导出接口:Export[Excel || Word][模块名]
  21. 验证数据重复接口:IsExist[模块名][字段名]
  22. 异步方法以Async为后缀,若没Async后缀则默认为同步方法
  23. 获取表单或列表选项:Get[模块名]Option

5.5、变量命名

  1. 全局公共变量使用Pascal命名法。如:public int PageIndex;
  2. 全局私有、受保护的变量使用Camel命名法。如:private int pageIndex;
  3. 局部变量使用Camel命名法。如:int pageIndex;

5.6、事件

  1. 使用动词描述事件名称。
  2. 对委托定义使用Event后缀。
  3. 对事件定义使用EventHandler后缀。
  4. 用EventArgs后缀命名事件参数类。
  5. 动作事件使用On前缀。

5.7、集合

集合命名使用复数形式。如:userEntities

5.8、常量(const)

所有单词大写,多个单词之间使用“_”分隔。例如:

public const string API_SERVER = "";

六、组件命名

控件名称使用Camel命名规则

控件类型

控件缩写

举例

Button

btn

btnAdd

CheckBox

chb

chbIsFirst

ComboBox

cbo

cboUnit

Label

lbl

lblName

LinkLabel

llbl

llblToday

TextBox

txt

txtName

RadioButton

rdo

rdoName

GroupBox

grp

grpName

PictureBox

pic

picName

Panel

pnl

pnlName

DataGrid

dg

dgData

ListBox

lst

lstUnit

TabControl

tab

tabUnit

ContextMenuStrip

cms

cmsMenu

TextBlock

txtb

txtbName

PassWordBox

ptxt

ptxtName

ListView

lvw

lvwUnit

RichTextBox

rtx

rtxContent

ToolTip

Tip

tipName

WebBrowser

wbs

wbsName

TreeView

Tv

tvName

ProgressBar

prg

prgAudio

DateTimePicker

dtp

dtpBeginTime

DatePicker

dp

dpTime

Calendar

cdr

cdrDay

Image

img

imgPic

Canvas

cvs

cvsPnl

Menu

mu

muMain

Timer

Tmr

tmrTick

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liu854046222

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值