C#代码规范要求

C#代码规范要求

1. 注释规范

1.1 类型注释

/// <summary>
/// 老师类
/// </summary>
public class Teacher {}

1.2 方法和属性注释

/// <summary>
/// 根据id查找人的名字
/// </summary>
/// <param name="id">人的id</param>
/// <returns>人的名字</returns>
public string GetPersonName(int id)
{
    return "";
}

1.3 单行注释

// 我是注释

1.3 多行注释

/*
多行注释
多行注释
*/

2. 命名规范

2.1 基本命名规范

  • 在命名时需要使用有意义的名称
  • 优先使用英文,如果英文没有合适的单词,可以使用拼音,如城市名称等
  • 禁止使用中文命名
  • 命名不能使用缩写,如必须写成 person,不能写成 per

2.2 使用 Pascal 风格(单词首字母大写)命名

  • 命名空间
namespace MyApp{}
  • 类型
public class Person {}
  • 枚举类型、枚举值
public enum Colors
{
    Red = 1,
    Green = 2,
    Yellow = 3
}
  • 事件
public event WorkEventHandler OnWork;
  • 属性
public string Name { get; set; }
  • 方法名
public void Method(){}
  • 常量
const int Value = 10;

2.3 使用 Camel 风格(首字母小写,其后每个单词的首字母大写)命名

  • 变量
int name;
int personId;
  • 方法参数
public void Method(int num){}
  • 字段(private 和 protected 字段,需要加“_”前缀)
public class Person
{
    private string _name;
}

2.4 其他命名规则

  • 接口以 I (大写的 i )为前缀命名
public interface ISpeak {}
  • 委托以 EventHandler 作为后缀命名
public delegate void WorkEventHandler ();
  • 事件以其对应的委托类型,去掉 EventHandler 后缀,加上 On 前缀
public enent WorkEventHandler OnWork;
  • 抽象类以 Abstract 为前缀或者以 Base 为后缀命名
public abstract class AbstractPerson {}
  • 异常类型以 Exception 为后缀
public class LoginException {}

3. 布局规范

3.1 使用 Tab 缩进,缩进大小为 4

Visual Studio 2017 中设置方法:菜单工具-选项-文本编辑器-C#-制表符,把制表符大小和缩进大小设置成4,选中“保留制表符”,点确定。

3.2 左右花括号必须独占一行,括号内容为空时可在一行

Visual Studio 2017 中设置方法:菜单工具-选项-文本编辑器-C#-代码样式-格式设置-新行

public void Method(int id)
{
    int i = 1;
    int j = 2;
}
public void Method(int id) {}

4. 编码规范

4.1. 不能出现公有字段

如果需要公有字段,使用属性包装。

4.2 类型名称和源文件名称必须一致

当类型名称是 Person 时,其源文件名称必须是 Person.cs。

4.3 类型成员的排列顺序

类型成员的排列顺序自上而下:

  • 字段:private、protected
  • 属性:private、protected、public
  • 事件:private、protected、public
  • 构造函数:参数越多,排的越靠前
  • 方法:参数越多,排的越靠前
public class Person
{
    private int _field1;
    protected int _field2;

    private int _property1 { set; get; }
    protected int _property2 { set; get; }
    public int Property3 { set; get; }

    public Person(int param1, int param2) {}
    public Person(int param1) {}
    public Person() {}

    public string GetPersonName(int param1, int param2) {}
    public string GetPersonName(int param1) {}
    public string GetPersonName() {}

}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容

  • 最近写python对于一些代码规范问题感觉有些地方自己还需要加强,翻阅很多文章,特此奉上官方中文翻译版以便日后查看...
    PeterPZ阅读 3,491评论 0 15
  • Android 编码规范 1. 前言 这份文档是 Google Java Code Style 的译文,并稍有添加...
    人失忆阅读 446评论 0 3
  • 作者:李旺成 时间:2016年4月3日 1. 前言 这份文档参考了 Google Java 编程风格规范和 Goo...
    diygreen阅读 39,921评论 19 224
  • 在南方,在傍晚,在一切百无聊赖中 我仔细地数数,我正在过人生的第四十四个冬天 没有白雪,没有土屋和窗棂以及方块玻璃...
    倚梦闲话阅读 374评论 1 1
  • 简单的但是重要的一点 seo,之搜索引擎优化,就是帮助谷歌/百度等搜索引擎,更好的收录我们的网站,提高网站检索的排...
    4ea0af17fd67阅读 1,464评论 0 1