C# 代码大小写规范说明

 更新时间:2022年06月10日 08:55:41   作者:Bird鸟人  
这篇文章主要介绍了C# 代码大小写规范说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

C# 代码大小写规范

C# 一般采用帕斯卡命名和驼峰命名,.NET类库就是使用这种命名方法, 可见是微软推荐的

  • PasalCasing:标识符的第一个单词的字母大写;
  • camelCasing:标识符的第一个单词的字母小写。

下表描述了不同类型标识符的大小写规则

标识符

大小写

示例

命名空间

Pascal

namespace Com.Techstar.ProductionCenter

类型

Pascal

public class DevsList

接口

Pascal

public interface ITableModel

方法

Pascal

public void UpdateData()

属性

Pascal

Public int Length{…}

事件

Pascal

public event EventHandler Changed;

私有字段

Camel

private string fieldName;

非私有字段

Pascal

public string FieldName;

枚举值

Pascal

FileMode{Append}

参数

Camel

public void UpdateData(string fieldName)

局部变量

Camel

string fieldName;

这三个标红的是采用驼峰(Camel)命名法

其余的是帕斯卡(pascal)命名法

具体应用的一般良好习惯

1、

成员变量前加前缀 _, 这个也是微软的常用做法

2、

接口的名称加前缀I

3、

自定义的属性以Attribute结尾,如:

public class AuthorAttribute :Attribute

{

}

4、

自定义的异常以Exception结尾,如:

public class AppException: Exception

{}

5、

方法的命名。一般将其命名为动宾短语,如:

ShowDialog()

CreateFile()

6、

代码的缩进。要用Tab,而不要用space.

7、

局部变量的名称要有意义。不要用x,y,z等等(除用于For循环变量中可使用i,j,k,l,m,n)。

8、

所有的成员变量声明在类的顶端,用一个换行把它和方法分开。

9、

用有意义的名字命名namespace,如:产品名、公司名。

10、

生成和构建一个长的字符串时,一定要使用StringBuilder,而不用string。

11、

始终使用”{ }”包含if下的语句,即使只有一条语句。

12、

把相似的内容放在一起,比如数据成员、属性、方法、事件等,并适当的使用#region…#endregion

C#中的大小写约定

许多命名约定都与标识符的大小写有关。值得注意的是,公共语言运行库 (CLR) 支持区分大小写和不区分大小写的语言。本主题中描述的大小写约定可帮助开发人员理解和使用库。

大小写样式

下列术语描述了标识符的不同大小写形式。

Pascal 大小写

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

例如: BackColor

大小写混合

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

例如: backColor

大写

标识符中的所有字母都大写。

例如: IO

标识符的大小写规则

如果标识符由多个单词组成,请不要在各单词之间使用分隔符,如下划线(“_”)或连字符(“-”)等。而应使用大小写来指示每个单词的开头。

下列准则是用于标识符的通用规则。

对于由多个单词组成的所有公共成员、类型及命名空间名称,要使用 Pascal 大小写。

注意,这条规则不适用于实例字段。由于成员设计准则中详细说明的原因,不应使用公共实例字段。

对参数名称使用大小写混合。

下表汇总了标识符的大小写规则,并提供了不同类型标识符的示例。

标识符

大小写方式

示例

Pascal

AppDomain

枚举类型

Pascal

ErrorLevel

枚举值

Pascal

FatalError

事件

Pascal

ValueChanged

异常类

Pascal

WebException

只读的静态字段

Pascal

RedValue

接口

Pascal

IDisposable

方法

Pascal

ToString

命名空间

Pascal

System.Drawing

参数

Camel

typeName

属性

Pascal

BackColor

首字母缩写的大小写规则

首字母缩写词是由术语或短语中各单词的首字母构成的单词。例如,HTML 是 Hypertext Markup Language 的首字母缩写。只有在公众广为认知和理解的情况下,才应在标识符中使用首字母缩写词。首字母缩写词不同于缩写词,因为缩写词是一个单词的缩写。例如,ID 是 identifier 的缩写。通常情况下,库名不应使用缩写词。

可在标识符中使用的两个缩写词是 ID 和 OK。在采用 Pascal 大小写格式的标识符中,这两个缩写词的大小写形式应分别为 Id 和 Ok。如果在采用大小写混合格式的标识符中将这两个缩写词用作首个单词,则它们的大小写形式应分别为 id 和 ok。

首字母缩写词的大小写取决于首字母缩写词的长度。所有首字母缩写词应至少包含两个字符。为了便于这些准则的实施,如果某一首字母缩写词恰好包含两个字符,则将其视为短型首字母缩写词。包含三个或三个以上字符的首字母缩写词为长型首字母缩写词。 下列准则为短型和长型首字母缩写词指定了正确的大小写规则。标识符大小写规则优先于首字母缩写词大小写规则。

两字符首字母缩写词的两个字符都要大写,但当首字母缩写词作为大小写混合格式的标识符的首个单词时例外。

例如,名为 DBRate 的属性是一个采用 Pascal 大小写格式的标识符,它使用短型首字母缩写词 (DB) 作为首个单词。又如,名为 ioChannel 的参数是一个采用大小写混合格式的标识符,它使用短型首字母缩写词 (IO) 作为首个单词。

包含三个或三个以上字符的首字母缩写词只有第一个字符大写,但当首字母缩写词作为大小写混合格式的标识符的首个单词时例外。

例如,名为 XmlWriter 的类是一个采用 Pascal 大小写格式的标识符,它使用长型首字母缩写词作为首个单词。又如,名为 htmlReader 的参数是一个采用大小写混合格式的标识符,它使用长型首字母缩写词作为首个单词。

如果任何首字母缩写词位于采用大小写混合格式的标识符开头,则无论该首字母缩写词的长度如何,都不大写其中的任何字符。

例如,名为 xmlStream 的参数是一个采用大小写混合格式的标识符,它使用长型首字母缩写词 (xml) 作为首个单词。又如,名为 dbServerName 的参数是一个采用大小写混合格式的标识符,它使用短型首字母缩写词 (db) 作为首个单词。

复合词和常用术语的大小写规则

不要将所谓的紧凑格式复合词中的每个单词都大写。这种复合词是指写作一个单词的复合词,如“endpoint”。

例如,hashtable 是一个紧凑格式的复合词,应将其视为一个单词并相应地确定大小写。如果采用 Pascal 大小写格式,则该复合词为 Hashtable;如果采用大小写混合格式,则该复合词为 hashtable。若要确定某个单词是否是紧凑格式的复合词,请查阅最新的词典。

下表列出了不是紧凑格式复合词的一些常用术语。术语先以 Pascal 大小写格式显示,后面的括号中的是其大小写混合格式。

  • BitFlag (bitFlag)
  • FileName (fileName)
  • LogOff (logOff)
  • LogOn (logOn)
  • SignIn (signIn)
  • SignOut (signOut)
  • UserName (userName)
  • WhiteSpace (whiteSpace)

区分大小写

大小写准则只是为了使标识符更易于阅读和辨认。不能将大小写规则用作避免库元素之间的命名冲突的手段。 不要假定所有编程语言都区分大小写。事实并非如此。不能仅凭大小写区分名称。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C#事件订阅发布实现原理详解

    C#事件订阅发布实现原理详解

    这篇文章主要介绍了C#事件订阅发布实现原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • C#中使用1.7版本驱动操作MongoDB简单例子

    C#中使用1.7版本驱动操作MongoDB简单例子

    这篇文章主要介绍了C#中使用1.7版本驱动操作MongoDB简单例子,本文给出了连接MongoDB、操作MongoDB数据等例子,需要的朋友可以参考下
    2015-01-01
  • 通过容器扩展属性IExtenderProvider实现WinForm通用数据验证组件

    通过容器扩展属性IExtenderProvider实现WinForm通用数据验证组件

    这篇文章介绍了通过容器扩展属性IExtenderProvider实现WinForm通用数据验证组件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • 如何利用现代化C#语法简化代码

    如何利用现代化C#语法简化代码

    这篇文章主要给大家介绍了关于如何利用现代化C#语法简化代码的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 基于.net中突破每客户端两个http连接限制的详细介绍

    基于.net中突破每客户端两个http连接限制的详细介绍

    本篇文章是对.net中突破每客户端两个http连接限制进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 通过LinQ查询字符出现次数的实例方法

    通过LinQ查询字符出现次数的实例方法

    这篇文章主要介绍了通过LinQ查询字符出现次数的实例方法,大家参考使用吧
    2013-11-11
  • C#使用ZBar实现识别条形码

    C#使用ZBar实现识别条形码

    目前主流的识别库主要有ZXing.NET和ZBar,本文主要介绍的是如何使用ZBar库实现识别条形码功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-07-07
  • C#使⽤XmlReader和XmlWriter操作XML⽂件

    C#使⽤XmlReader和XmlWriter操作XML⽂件

    这篇文章介绍了C#使⽤XmlReader和XmlWriter操作XML⽂件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#调用FFplay实现播放视频功能

    C#调用FFplay实现播放视频功能

    这篇文章主要为大家详细介绍了C#如何调用FFplay实现播放视频功能,文中的示例代码讲解详细,具有一定的参考价值,有需要的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • C#简单爬虫案例分享

    C#简单爬虫案例分享

    这篇文章主要为大家分享了C#简单爬虫案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10

最新评论