2012-02-24 157 views

回答

4

假設你指的的WinForms,這是一個摘自ILSpy的System.Windows.Forms.Control

public virtual string Text 
{ 
    get 
    { 
     // ... 
    } 
    set 
    { 
     if (value == null) 
     { 
      value = ""; 
     } 

     // ... 
    } 
} 

因此,大家可以看到,無論是傳球nullstring.Empty導致分配string.Empty的控制。

如果你指的ASP.NET(的WebForms),同樣適用,因爲你可以從這個摘錄的System.Web.UI.WebControls.TextBox看到:

public virtual string Text 
{ 
    get 
    { 
     string text = (string)this.ViewState["Text"]; 
     if (text != null) 
     { 
      return text; 
     } 
     return string.Empty; 
    } 
    set 
    { 
     this.ViewState["Text"] = value; 
    } 
} 

這裏,在get部分,它返回string.Empty一個null價值也。

我的結論將有您日常使用TextBox控制的沒有實際差異。

0

假設你指的是ASP.NET Web窗體:

""是一個實際的字符串,其中有0.1

null的長度,是指字符串變量指向什麼。因此不會產生價值。

當TextBox呈現爲HTML時,不會有任何區別。

0

TextBox1.Text是TextBox類中的可用屬性,其中setter null檢查是在分配值之前添加的。下面的代碼更簡單一些。

string txt= string.Empty; 



public string Text 
    { 
     get { 
      return txt; 
     } 
     set 
     { 
      if (string.IsNullOrEmpty(value)) 
      { 
       txt = string.Empty; 
      } 
      else 
      { 
       txt = value; 
      } 
     } 
    } 
相關問題