国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

編碼好習慣

2019-11-14 15:44:14
字體:
來源:轉載
供稿:網友

這是我無意逛人家博客看到的,對于我這樣剛出來沒多久且有些迷茫的小白來說是不錯的借鑒。

 

1、不要硬編string/ numeric,可以使用一些常量代替。 (提高可讀性)

復制代碼
int Count;
Count = 100;
PRivate static const int ZERO  =  0;
if(  Count  ==  ZERO )
{
// 執行一些操作
}
復制代碼

2、對于字符串比較-使用String. Empty ,而不是""。

3、不要聲明成員變量為 public 或者proteted,盡量使用private 成員變量和public/protected 屬性。 (修改)

4、當我們要在循環操作字符串,使用StringBuilder,而不是字符串,示例如下。

不好的習慣:

           String  temp = String.Empty;
            forint i = 0 ; i<= 100; i++)
            {
                temp += i.ToString();
            }

好點的習慣:

            StringBuilder sb = new StringBuilder();
            for ( int i = 0 ; i<= 100; i++)
            {
                sb.Append(i.ToString());
            }

5、簡單的操作,比起Collection更傾向使用Array。 (視情況,這里是建議)

6、比起ArrayList更傾向使用Generic Collection。 (視情況,這里是建議)

7、比起HashTable更傾向使用Generic Dictionary。 (視情況,這里是建議)

8、對于字符串的操作和存儲,傾向于StringCollection和StringDictionary。 (視情況,這里是建議)

9、使用適合的數據類型。

    例如:你想要判斷狀態,使用bool比int要好。

不好的習慣:

            int Check = 0;
            if( Check == 0 )
            {
                // 執行一些操作

            }

好點的習慣:

            bool Check = false;
            if(!Check)
            {
                // 執行一些操作
            }

10、使用as做類型轉換的時候,對轉換后的值進行null值判斷

復制代碼
   class A
   {

   }
   class B : A
   {

   }
    B objB = new B();
    A objA1  = (A) objB;
    A objA2 = objB as A;
    if( objA2 != null)
    {
     //執行所需的操作
    }
復制代碼

11、創建wcf代理,可以使用using表達式。 (很多地方可以這樣使用)

           using(Cerate the proxy)
            {
                //執行所需的操作
            }

 12、對于昂貴的資源(例如Connection, File 等等),遵照'Acquire late, release early’ (盡量晚的獲取,盡量早的釋放)準則。

例子:如果你想在數據操作時,使用的SqlConnection對象,請在方法級別,而不是在類級別創建實例。

代碼

 如果你想創建的類級別SqlConnection實例,確保您的類實現了IDisposable接口,并在Dispose()中清理SqlConnection實例。

代碼

13、如果你不想別人擴展你的類功能,使用‘sealed’。

14、避免為每個類都聲明‘destructor’ ,因為它會增加不需要常駐內存的類的生命周期。

15、相對manual threading,更傾向用Thread Pool 。

16、在循環內不要去調用其它方法。 (call function 有性能損耗)

例如:

不好的習慣:

forint i = 0; i<= 100; i++)
{    
   Calculate(i);
}

 好點的習慣:

forint i = 0; i<= 100; i++)
{
//直接寫Calculate邏輯。
}

17、不要在循環內處理異常,而是將循環處理的邏輯放在try/catch里面

不好的習慣:

復制代碼
for(int i = 0 ; i<= 100; i++)
{
   try
   {
   }
   catch(Exception ex)
   {
    throw ex;
   }
}
復制代碼

好點的習慣:

復制代碼
   try
   {
     for(int i = 0 ; i<= 100; i++)
     {
     }
   }
   catch(Exception ex)
   {
       throw ex;
   }
復制代碼

 18、不用通過異常處理應用程序的邏輯

例如:

不好的習慣:

復制代碼
  try
  {
    int x,y,z;
    x = 0;
    y = 10;
    z = y/x;
   }
   catch(DevideByZeroException ex)
   {
    Throw ex;
   }
復制代碼

好點的習慣:

復制代碼
try
 {
   int x,y,z;
   x = 0;
   y = 10;
   if( x != 0 )
   {
      z = y/x;
   }
 }
 catch(Exception ex)
 {
 }
復制代碼

19、相對for/while  ,傾向使用foreach循環。[更正]

20、使用多層架構的系統,層與層之間的交互,比起DataSet/DataTables更傾向于使用對象傳遞數據。

作者:朱祁林 出處:http://zhuqil.VEVb.com 本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 颍上县| 莲花县| 藁城市| 白山市| 宜昌市| 茌平县| 嵊州市| 蕲春县| 礼泉县| 离岛区| 满洲里市| 云霄县| 同江市| 印江| 永嘉县| 宽甸| 禹州市| 故城县| 北海市| 库伦旗| 遵义县| 廊坊市| 嫩江县| 东海县| 冷水江市| 休宁县| 泰州市| 阳东县| 邵东县| 灵石县| 彩票| 宜州市| 新源县| 都兰县| 涟水县| 安陆市| 施秉县| 仁化县| 汤阴县| 镇雄县| 循化|