• 推荐:C#命名规范12条


    编码规范对于程序员而言尤为重要,有以下几个原因:

    1.一个项目的生命周期中,80%的花费在于维护;

    2.几乎没有任何一个项目,在其整个生命周期中,均由最初的开发人员来维护;

    3.命名规范可以改善项目的可读性,可以让程序员尽快而彻底地理解新的代码;

    4.如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,比如你已构建的其它任何产 品。 为了执行规范,每个软件开发人员必须一致遵守编码规范。

    常见的命名规则我们都知道:

    Pascal 规则:
    每个单词开头的字母大写(如 TestCounter).

    Camel 规则:
    除了第一个单词外的其他单词的开头字母大写. 如. testCounter.

    Upper 规则:
    仅用于一两个字符长的常量的缩写命名,超过三个字符长度应该应用Pascal规则

    例如:

    public class Math
    {
    public const PI = ...
    public const E = ...
    public const FeigenBaumNumber = ...
    }
    

    针对C#开发者,整理了15条命名规范!

    1.类命名规则

    • 类名应该为名词及名词短语,尽可能使用完整的词.

    • 使用Pascal规则

    • 不要使用类前缀 - 不要使用下划线字符 (_)。

    • 有时候需要提供以字母 I 开始的类名称,虽然该类不是接口。只要 I 是作为类名称组成部分的整个单词的第一个字母,这便是适当的。例如,类名称 IdentityStore 就是适当的。

    • 在适当的地方,使用复合单词命名派生的类。派生类名称的第二个部分应当是基类的名称。例如,ApplicationException 对于从名为 Exception 的类派生的类是适当的名称,原因是 ApplicationException 是一种 Exception。请在应用该规则时进行合理的判断。例如,Button 对于从 Control 派生的类是适当的名称。尽管按钮是一种控件,但是将 Control 作为类名称的一部分将使名称不必要地加长。

    2.接口命名规则

    • 接口名称应该为名词及名词短语或者描述其行为的形容词,尽可能使用完整的词. (Example IComponent or IEnumberable)

    • 使用Pascal规则

    • 使用字符I为前缀,并紧跟一个大写字母(即接口名的第一个字母大写)

    复制代码代码如下:

    interface ICompare
    {
    int Compare();
    }
    

    3.枚举命名规则

    • 对于 Enum 类型和值名称使用 Pascal 大小写。
    • 少用缩写。
    • 不要在 Enum 类型名称上使用 Enum 后缀。
    • 对大多数 Enum 类型使用单数名称,但是对作为位域的 Enum 类型使用复数名称。
    • 总是将 FlagsAttribute 添加到位域 Enum 类型。

    4.变量命名

    • 在简单的循环语句中计数器变量使用 i, j, k, l, m, n
    • 使用 Camel 命名规则

    5. 方法命名

    • 使用Pascal规则

    • 对方法名采用一致的动词/宾语或宾语/动词顺序。例如,将动词置于前面时,所使用的名称诸如 InsertWidget 和 InsertSprocket;将宾语置于前面时,所使用的名称诸如 WidgetInsert 和 SprocketInsert。

    • 推荐名称应该为动词或动词短语.例如Save,SaveCustomer,而不要使用CustomerSave

    • 不要在方法中重复类的名称。例如,如果某个类已命名为 Book,则不要将某个方法称为 Book.CloseBook,而可以将方法命名为 Book.Close。

    6.属性命名

    • 名称应该为名词及名词短语

    • 使用Pascal规则

    • 对于bool型属性或者变量使用Is(is)作为前缀,不要使用Flag后缀,例如应该使用IsDeleted,而不要使用DeleteFlag

    7.集合命名

    • 名称应该为名词及名词短语

    • 使用Pascal规则

    • 名称后面追加“Collection”

    8. 事件命名

    • event handlers命名使用 EventHandler 后缀.

    • 两个参数分别使用 sender 及 e

    • 使用Pascal规则

    • 事件参数使用EventArgs 后缀

    • 事件命名使用语法时态反映其激发的状态,例如 Changed,Changing.

    • 考虑使用动词命名. 变量命名

    • 在简单的循环语句中计数器变量使用 i, j, k, l, m, n

    • 使用 Camel 命名规则

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

    代码如下:

    public class AuthorAttribute : Attribute
    {
    }
    

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

    复制代码代码如下:

    public class AppException : Exception
    {
    }
    

    11. 在类的顶部声明所有的成员变量,静态变量声明在最前面

    // Correct
    public class Account
    {
        public static string BankName;
        public static decimal Reserves;
        
        public string Number {get; set;}
        public DateTime DateOpened {get; set;}
        public DateTime DateClosed {get; set;}
        public decimal Balance {get; set;}
        
        // Constructor
        public Account()
        {
            // ...
        }
    }
    

    12.不推荐使用匈牙利命名法

    不要给成员变量加任何前缀(如、m、s_等等)。如果想要区分局部变量和成员变量,可以使用this关键字。

    命名规范的总结用表格表示如下:

    与类相关:

    与变量命名相关:


    与ADO.NET有关:


    与页面控件有关:

  • 相关阅读:
    Python 创建包含列表的元组
    Python 创建特殊元组tuple
    Bean named 'XXX' is expected to be of type [XXX] but was actually of type [com.sun.proxy.$Proxy7
    小米手机安装Google框架
    前端框架
    Microsoft Project项目管理工具
    Spring AOP无法拦截Controller的原因
    sql分页优化
    npm和Node.js简介
    启动OpenOffice服务
  • 原文地址:https://www.cnblogs.com/zhangmumu/p/14823461.html
Copyright © 2020-2023  润新知