.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";
        }
    }
}
相關文章
相關標籤/搜索