命名约定

我们在命名标识符时(包括参数,常量,变量),应使用单词的首字母大小写来区分一个标识符中的多个单词,如UserName.

  • PascalCasing

PascalCasing包含一到多个单词,每一个单词第一个字母大写,其余字母均小写。例如:HelloWorld、SetName等。

除了参数、变量、常量外,所有命名空间名称、类、函数、接口、属性、事件、枚举等名称的命名,使用 Pascal 风格。

  • camelCasing

camelCasing包含一到多个单词,第一个单词首字母小写,其余单词首字母大写。例如:name、productId等。

参数与变量的命名使用camelCasing.

  • SCREAMING_CAPS

SCREAMING_CAPS包含一到多个单词,每个单词的所有字母都大写,单词与单词之间用"_"连接,该风格目前在c#中只用于const常量。

如:public const string DEFAULT_PAGE = "default.aspx";

  • 私有变量的命名

Private 的私有变量使用下划线"_"+camelCasing的大小写规则,以便快速确认该变量的作用域。

如: private int _userId;

  • 首字母缩写词的大小写

首字母缩写词是由一个短语的首字母组成的,如Xml(ExtensibleMarkuLaguage),IO(Input and Output)。它和单词缩写是有区别的,单词缩写仅仅是把一个单词的长度变短。

  1. 把两个字母的首字母缩写词全部大写,除非它是camelCasing的第一个单词。

    using System.IO;

    public void StartIO(Stream ioStream)

  2. 由三个或以上的字母组成的首字母缩写词,只有第一个字母大写,如Xml,Html.除非首字母是camelCasing标识符的第一个单词。

    using System.Xml;

    public void ProcessXmlNode(XmlNode xmlNode)

  • 复合词的大小写

不要把复合词中的首字母大写。复合词要当成一个单词来处理。

如endpoint, callback,metadata,namespace等都是正确的写法

  • 在带单位的值的变量后加上"_camelCasing单位"

将单位加入标识符命名中,可以使使用者快速准确的知道传人数据的单位,减少错误的发生。

如public void CreateCache(int cacheSize)

传入的数据是bytes, KB, MB 还是GB?

改成public void CreateCache(int cacheSize_mb)

一目了然,并且会减少调用者传入错误数据的可能。

其他一些没有单位的函数参数以及带单位的版本。

  • 不要使用匈牙利命名法

匈牙利命名法是指用小写形式的数据类型缩写来作为变量名的前缀。如:strName,intCount。

这种命名法在C和C++时代很流行,可以帮助程序员记住自己的类型。

但在C#中需要禁用,除非你有足够的理由,因为:

  1. C#都是强类型的,现在的IDE(如Visual Studio)可以自动的检测出当前变量的类型以及类型错误

  2. 开发初期经常需要修改变量的类型,使用匈牙利命名法维护很困难。
  • 使用英语语序命名标识符

人在阅读代码时,能更快的理解符合其阅读习惯的命名。

如VerticalAlignment比AlignmentVertical能让人更快的知道该变量的含意。

自己总结的C#编码规范--1.命名约定篇的更多相关文章

  1. 自己总结的C#编码规范--4.注释篇

    注释 注释毫无疑问是让别人以最快速度了解你代码的最快途径,但写注释的目的绝不仅仅是"解释代码做了什么",更重要的尽量帮助代码阅读者对代码了解的和作者一样多. 当你写代码时,你脑海里 ...

  2. 自己总结的C#编码规范--6.格式篇

    格式 格式的统一使用可以使代码清晰.美观.方便阅读.为了不影响编码效率,在此只作如下规定: 长度 一个文件最好不要超过500行(除IDE自动生成的类). 一个文件必须只有一个命名空间,严禁将多个命名空 ...

  3. 这套C#编码规范写不错

    自己总结的C#编码规范--1.命名约定篇:http://www.cnblogs.com/luzhihua55/p/CodingConventions1.html 自己总结的C#编码规范--2.命名选择 ...

  4. python编码规范

    python编码规范 文件及目录规范 文件保存为 utf-8 格式. 程序首行必须为编码声明:# -*- coding:utf-8 -*- 文件名全部小写. 代码风格 空格 设置用空格符替换TAB符. ...

  5. C#编码规范 转 http://www.cnblogs.com/wulinfeng/archive/2012/08/31/2664720.html

    C#编码规范   1  规范目的 ……………………………………………………… 3 2  适用范围 ……………………………………………………… 3 3  代码注释 ………………………………………………… ...

  6. c#编码规范

    1  规范目的 --------------------- 3 2  适用范围 --------------------- 3 3  代码注释 --------------------- 3 3.1  ...

  7. Mod4-PHP编码规范

    loading... 归纳总结了能找到的一些编码规范,形成自己所需要的编码规范. 参考网址:1.2 一.文件格式 缩进使用四个空格,不使用制表符.左花括号不另起一行. if (1 == $x) { $ ...

  8. 资料推荐--Google Java编码规范

    之前已经推荐过Google的Java编码规范英文版了: http://google-styleguide.googlecode.com/svn/trunk/javaguide.html 虽然这篇文章的 ...

  9. Python + OpenCV2 系列:3 - python 字符串,类,编码规范

    首先,强烈推荐<<简明 Python 教程>> Swaroop, C. H. 著 沈洁元 译 其实,这本书里已经把python的最基本的用法,编码等等介绍的很好,这里把我用到的 ...

随机推荐

  1. Android 基础 一 AndroidManifest.xml

    一.概述 AndroidManifest.xml是Android应用的入口文件,它描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的 ...

  2. Layers Of Caffe

    本文试图描述构建一个网络结构的layers,可以用prototxt脚本直接写,也可以用python接口实现. 最简单的神经网络包含但不限于以下四部分: 数据层(Data): Data.ImageDat ...

  3. uva11827 处理下输入

    /*0.012s*/ #include<cstdio> #include<algorithm> using namespace std; ], n; int gcd(int a ...

  4. CF1005F

    这题不错... 首先,不难看到他想让你求出的是最短路树 然后,考虑到所有边权均为1,所以可以采用bfs直接生成最短路树 至于方案的储存,可以在加边的时候同时记录边的编号,然后对每个点维护一个能转移他的 ...

  5. 极光推送>>java SDK服务端集成后台项目(使用详解)

    PS:如果你是第一次用推送,那就直接按照我的步骤来,再去看官方文档,这样,更容易能理解操作流程.还有——-请耐心看 极光文档(java SDK)请参考 [ 极光文档 ] 步骤一: 首先,你必须在 [极 ...

  6. spring cloud Eureka常见问题总结

    Spring Cloud中,Eureka常见问题总结. 指定Eureka的Environment 1 eureka.environment: 指定环境 参考文档:https://github.com/ ...

  7. js 图片转换base64 base64转换为file对象

    function getImgToBase64(url,callback){//将图片转换为Base64 var canvas = document.createElement('canvas'), ...

  8. python 内建函数

    # # __geratteibute__class Itcast(object): def __init__(self,subject1): self.subject1 = subject1 self ...

  9. 什么是redis的雪崩和穿透

    缓存雪崩 如何应对缓存雪崩 首先要保证redis的高可用,可以使用redis cluster,开启redis持久化,redis之前要使用本地缓存,请求先走本地缓存,没找到再走redis 如果还是出现了 ...

  10. Multidex(二)之Dex预加载优化

    Multidex(二)之Dex预加载优化 https://www.jianshu.com/p/2891599511ff