细说C#编程命名规范

开发 后端
命名规范是一个十分重要但有比较有争议的话题,本文主要谈一下作者的体会并介绍一种较常用的C#编程命名规范。

匈牙利命名法

我最早接触到的命名规范是匈牙利命名法,该方法出自微软,基本上是一些在你的所有变量前建立一个前缀的规则。这个前缀会说明那个变量的类型。其好处在于,通过它们的前缀,你可以方便地知道两个变量是否兼容。这种方法非常流行,在目前的C和C++开发中还被广泛的使用。

匈牙利命名法的不足

匈牙利命名法的***的不足的地方就是繁琐,随着计算机的速度越来越快,IDE已拥有足够的能力,可以开始实时探测变量的类型。因此,当你编程时,IDE能够向你警告类型不兼容的情况(通常普遍使用微软Word自动拼写检查中的红色弯曲下划线)。

匈牙利命名法过分强调类型,在泛型方法中就显得格格不入。另外,很多时候我们关心的只是这个变量所代表的意义而不是它的类型。像C++0x的auto关键字(虽然这个关键字在C++98中就存在,但没法用)和C#的var关键字也说明了这一点。在小函数或者Lambda表达式这种比较简单的流程的时候,过长的匈牙利变量显得也很不合适。

其实主要的还是程序员懒惰心理作怪,但正是这种懒惰推动了计算机行业的不断发展。就连微软也逐步减少了匈牙利命名法的使用,在其当家语言C#中主要使用的是帕斯卡命名法和骆驼命名法。下面就简单的介绍一下常用的C#编程命名规范。

C#编程命名规范

C#编程命名规范 

具体如下:

1.用camel规则来命名局部变量和方法的参数,用pascal规则来命名方法和类型。

  1.     public class TextBox  
  2.     {  
  3.         public void DataBind()  
  4.         {  
  5.         }  
  6.     }   
  7.  
  8. string userName;  
  9. public AddUser(string userId,byte[] password);  

2接口的名称加前缀 I.

  1. interface ICompare  
  2.     {  
  3.         int Compare();  
  4.     }  

3.自定义的属性以Attribute结尾

  1. public class AuthorAttribute : Attribute  
  2. {  
  3. }  

4.自定义的异常以Exception结尾

  1. public class AppException : Exception  
  2. {  
  3. }  

5.方法的命名。一般将其命名为动宾短语。

  1. ShowDialog()  
  2. CreateFile()  
  3. GetPath()  

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#编程命名规范的内容就讲到这里,希望大家喜欢。

【编辑推荐】

  1. C#语言读书心得备忘
  2. 详解C#制做Active控件的五个步骤
  3. 总结C#多线程的点点滴滴
  4. 学习C#多线程:lock的用法
  5. 各种C#数组的定义和初始化
责任编辑:book05 来源: cnblogs
相关推荐

2009-08-21 08:52:40

C#语言命名

2009-08-13 13:38:30

C#命名规范

2009-07-31 18:18:33

Camel命名法C#命名规范

2009-09-01 16:12:41

C#命名指南

2009-09-01 15:08:07

C#命名规范

2009-05-22 11:01:53

C++JavaC#

2009-08-03 16:57:42

ASP.NET编程规范

2012-03-22 17:16:24

Java

2009-09-01 16:07:04

C#命名规约

2009-08-27 15:34:38

C#命名空间

2009-08-12 10:46:54

C#命名空间

2009-08-28 09:30:48

C#命名属性

2009-08-28 13:56:25

C#反射命名空间

2009-08-21 08:59:35

C#语言规范

2009-09-01 10:37:51

C#项目代码C#代码规范

2009-08-26 10:34:15

C#类型C#变量

2009-08-24 11:02:52

C#接口映射

2009-08-24 09:55:26

C#接口转换

2020-04-16 21:02:35

前端命名规范html规范

2016-05-17 14:03:07

Android命名解决方案
点赞
收藏

51CTO技术栈公众号