.Net编码规范整理(一)

前言

  此处只是整理并记录下.Net开发规范以便加深编码规范。本身编码一直都是为所欲为,特别是在Java和C#之间来回切换,致使命名也乱七八糟彻底没有规范可言。一个良好的编程规范能够提高程序员的开发效率、提升程序的易读性、提升代码的可维护性等,本文分两部分:通用规范、.Net开发规范。程序员

 

通用编程规范    

  1. 明确性和一致性

必定要要确保代码的明确性、易读性尽可能保证清晰简洁,如函数的命名及该有的注释必需要有,让别人一看函数就知道该函数是干什么用的。编程

    

 

  2. 库的使用

删除不须要的库引用。函数

 

  3. 尽可能少用全局

    尽可能少用全局变量,若是要用只读不修改影响不大,但涉及变量的修改就必定要检查变量更改对其它地方的影响,在VS中用“查找全部引用”核查全部用到的代码。测试

    

  

  4. 变量申明和初始化

    1. 在变量申明时进行初始化;
    2. 必定在最小做用域内申明它,通常申明于做用域顶端;
    3. 变量初始化置于同一行,推荐每行只包含一句申明;

    

 

  5. 函数申明和调用

    1. 函数名称,返回值,参数原则置于同一行;
    2. 过多参数一个参数一行(推荐);
    3. 多个输入参数时建议对输入参数进行排序;
    4. 当存在多个重构函数时,扩展参数因日后追加;
    5. 当存在输出参数时候,输出参数放末尾或开头;    
 1         static void Main(string[] args)
 2         {
 3             string logMsg = null;
 4             string erroMsg = null;
 5             string userName = "zhangsan";
 6             string userPwd = "123456";
 7 
 8             //若是参数较少,可放置一行调用
 9             string result = DoSomeFunctionCall(userName, userPwd, false, out logMsg, out erroMsg);
10 
11             //若是参数较多状况下,可用以下方式进行调用
12             string result2 = DoSomeFunctionCall(
13                 userName, 
14                 userPwd, 
15                 false,
16                 out logMsg,
17                 out erroMsg);
18 
19             Console.WriteLine($"result={result}, result2={result2}");
20         }
21 
22         /// <summary>
23         /// 示例函数描述信息
24         /// </summary>
25         /// <param name="userName">用户名</param>
26         /// <param name="userPwd">用户密码</param>
27         /// <param name="isRememberPwd">是否记住密码</param>
28         /// <param name="logMsg">日志信息</param>
29         /// <param name="errorMsg">错误信息</param>
30         private static string DoSomeFunctionCall(
31             string userName,   
32             string userPwd, 
33             bool isRememberPwd,
34             out string logMsg, 
35             out string errorMsg) {
36 
37             logMsg = null;
38             errorMsg = null;
39 
40             //Do Something
41 
42             return "some result";
43         }

 

  6. 枚举

    将表明某些值集合的强类型参数,属性和返回值声明为枚举类型。编码

 

  7. 空格

    空行:适度增长空行来增长代码的可读性;spa

    空格:可以使用VS回车自动格式化了;3d

 

  8. 注释

    注释最好简洁明了,必定不要过多的冗余注释,通常注释包括:文件头注释、函数注释、多行注释、单行注释、内联注释、代码快注释。日志

/*
    文件头注释:描述整个类的主要用途,如此类主要用于测试使用。
 */
using System;
using System.ServiceProcess;
using System.Threading;

namespace StartServices
{
    class Program
    {
        /// <summary>
        /// 函数注释:控制台函数入口
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            string logMsg = null;
            string erroMsg = null;
            string userName = "zhangsan";
            string userPwd = "123456";

            //单行注释:若是参数较少,可放置一行调用
            string result = DoSomeFunctionCall(userName, userPwd, false, out logMsg, out erroMsg);

            /*
             * 多行注释:
             * 若是参数较多状况下,可用以下方式进行调用
             */
            string result2 = DoSomeFunctionCall(
                userName,       //内联注释:用户名
                userPwd,        //密码
                false,          //是否记住密码
                out logMsg,     //日志信息输出
                out erroMsg);   //错误信息输出

            #region 代码块注释:控制台数据输出
            Console.WriteLine($"result={result}, result2={result2}");
            Console.WriteLine($"result={result}, result2={result2}");
            Console.WriteLine($"result={result}, result2={result2}");
            Console.WriteLine($"result={result}, result2={result2}");
            Console.WriteLine($"result={result}, result2={result2}");
            Console.WriteLine($"result={result}, result2={result2}");
            #endregion
        }

        /// <summary>
        /// 示例函数描述信息
        /// </summary>
        /// <param name="userName">用户名</param>
        /// <param name="userPwd">用户密码</param>
        /// <param name="isRememberPwd">是否记住密码</param>
        /// <param name="logMsg">日志信息</param>
        /// <param name="errorMsg">错误信息</param>
        private static string DoSomeFunctionCall(
            string userName,
            string userPwd,
            bool isRememberPwd,
            out string logMsg,
            out string errorMsg) {

            logMsg = null;
            errorMsg = null;

            //Do Something

            return "some result";
        }
    }
}
相关文章
相关标签/搜索