程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 談談幾個編程習慣

談談幾個編程習慣

編輯:關於ASP.NET

一個人的成功有時往往體現在細節上,而習慣往往是這些細節的具體表現形式,這裡我也想總結幾個不太好的編程習慣。

第一:int初始化的控制,對數據初始值的理解問題。下面的一段程序大概的意思就是,頁面上有一個屬性HighPrice,它最終會通過ViewState保存在頁面中,如果ViewState為空,則設置屬性HighPrice的值為-1,否則直接讀取ViewState中的值。但實際情況並不是這樣,程序在初始化時,HighPrice的初始值為0,所以下面的代碼永遠得不到-1。

public int HighPrice {
  get
  {
    if (ViewState["HighPrice"] != null)
       return (int)ViewState["HighPrice"];
    else
       return -1;
  }
   set
   {
       ViewState["HighPrice"] = value;
   }
}

解決方案:下面給出相對正確的寫法。大家如果有更好的寫法可以提出參考下。

private int _HighPrice = -1;
        public int HighPrice
        {
            get
            {
                if (null != ViewState["HighPrice"])
                {
                  int.TryParse(ViewState["HighPrice"].ToString(), out _HighPrice);
                }
                return this._HighPrice;
            }
            set
            {
                this._HighPrice = value;
                if (null == ViewState["HighPrice"])
                {
                    this._HighPrice = -1;
                }
                //把變量值保存到ViewState中
                ViewState["HighPrice"] = this._HighPrice;
            }
        }

第二:對於多條件的判斷,最典型的要數&&操作符了。如果一個語句的執行需要同時滿足兩個條件,我們經常會這樣寫:if(條件一&&條件二),意圖是認為條件一和條件二都等於true的情況下,但實際情況是如果兩人條件都是false,那麼最後的條件一&&條件二的結果剛好也是true,此時就會出現不可預測的錯誤。而且這種錯誤也是非常難查找的。有時候寫代碼能省就省,不能省的一個也不能少。

說明:此條對C#不成立,但其它的語言就不一定,大家可以測試下。

第三:對於if語句的寫法。我們大多會這樣寫:if(條件==true),正常情況下是沒有問題,但有時會寫成if(條件=true),也就是程序員在寫的時候少寫了一個等號,造成程序永遠執行下面的代碼,這種錯誤查找起來也是相當困難的,因為編譯器在編譯時並不會報錯。

解決方案:

1:可以這樣寫if(true==條件),如果你寫成了if(true=條件),編譯器會報錯,因為true是不能充當左值的。

2:如果只有一個條件,就直接if(條件),把==true給省略即可,如果是多條件就按方法一來執行。

說明:if(true=條件)這種程序當然並不是程序員想這要寫,只是有時會少寫一個而已。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved