1. 程式人生 > >【程式碼積累】寫一手漂亮的程式碼(1)

【程式碼積累】寫一手漂亮的程式碼(1)

      自己寫程式碼的過程中,難免會發現一些問題,有的是共性的、有的是特例的,定期把自己總結的程式碼規律做個總結,寫成部落格,請見如下:

     (1)屬性訪問器裡的get判斷

<span style="font-family:Microsoft YaHei;font-size:14px;">public LanguageText Name
 {
   get  
 {
     if (_name == null)
         _name = new LanguageText();
       return _name;
   }
   set { _name = value; }
 }
</span>
       之前寫過一篇”get set 屬性訪問器”的文章,一些花哨的寫法做了總結,後來在專案中我發現了一個問題,只要是這個屬性的返回值型別不是基本型別(string、int、bool等),就需要在get訪問器中進行判斷,if(_欄位 = null) return New 型別(); 這一點可以拿來注意。

     (2)catch中捕捉到錯誤,將其寫入到日誌當中

<span style="font-family:Microsoft YaHei;font-size:14px;">catch (Exception ex)
{
     //$"支付錯誤:{ex.Message}".Output();
     Log.Write(nameof(YCHHelper), $"支付錯誤:{ex.Message}", LogType.System, LogLevel.Crash);
     return "";
}
</span>
      之前對catch的寫法,我在java中接觸過列印到堆疊,是在IDE執行過程去監控,對於開發人員還好,一旦上線還是發現寫到日誌當中比較好,這裡想要先說的就是這種思想,我會專門寫一篇關於日誌處理的文章。

    (3)資料庫連線欄位的寫法

<span style="font-family:Microsoft YaHei;font-size:14px;">//建立表SQL語句
private string tableSql = string.Empty;  
  /// 新增資料列
  /// </summary>
  /// <param name="colName">列名</param>
  /// <param name="colType">型別</param>
  public void AddColumn(string colName, string colType)
  {
     string strFormat = string.Empty == tableSql ? "{0} {1}" : ",{0} {1}";
     tableSql += string.Format(strFormat, colName, colType);   </span><pre name="code" class="csharp"><span style="font-family:Microsoft YaHei;font-size:14px;">     //這樣的寫法,減少了因為是否需要逗號的邏輯判斷,精簡了程式碼量。</span>
} /// <summary> /// 新增資料列 /// </summary> /// <param name="colName">列名</param> /// <param name="colType">型別</param> /// <param name="length">長度</param> public void AddColumn(string colName, string colType, int length) { string strFormat = string.Empty == tableSql ? "{0} {1}({2})" : ",{0} {1}({2})"; tableSql += string.Format(strFormat, colName, colType, length); } public void AddColumn(string colName, string colType, int length, bool isAllowNull) { string strFormat = string.Empty == tableSql ? "{0} {1}({2}) {3}" : ",{0} {1}({2}) {3}"; tableSql += string.Format(strFormat, colName, colType, length, isAllowNull ? string.Empty : "not null"); } /// <summary> /// 生成建立表SQL語句 /// </summary> /// <returns>SQL語句</returns> public string GetCreateTableSQL() { tableSql = string.Format("Create table {0} ({1})", tName, tableSql); return tableSql; }       如上所述,是一個動態地生成sql語句的過程,這裡有一個點寫的很妙:

      privatestring tableSql = string.Empty;

      stringstrFormat = string.Empty == tableSql ? "{0} {1}" : ",{0}{1}";

先讓字串"tableSql"為空,拼串的過程中,如果"tableSql"為空,則拼接後面的引數,如果不為空,在拼接引數之前自動加上“,”,省去了每次拼接新串時加“,”判斷的邏輯程式碼,很輕便。而且上面3個方法過載,整體看起來,程式碼量也不大。

【Summary】

       不斷從GitHub或者組裡學習別人寫的程式碼,每次一點點吸收成自己的東西,時間久了,就NB了。