2014-03-04 45 views
3

對於表單上的文本框,這總是讓我困惑不解。我知道一個string可以是nullString.Empty,但可以一個文本框?根據我的理解,只要控件被創建,它會自動包含「文本」(我使用反向逗號,因爲雖然可能沒有字段中的文本,但是該字段存在)。讀取一個空的Textbox.Text爲「」,null或String.Empty?

因此,如果一個文本框被創建,TextBox.Text == nullTextBox.Text == String.Empty是假的?

或者這是不正確的,因爲TextBox.Text是一樣的string

回答

7

TextBox.Text文檔

一個包含文本框的文本內容的字符串。缺省是 一個空字符串(「」)。

因此,如果創建一個文本框,TextBox.Textnull,它是String.Empty

您可以將null值未設置爲一個控制文本,文本setter方法實現如下,按照實施null將被轉換爲empty

set 
    { 
    if (value == null) 
     value = ""; 
    if (value == this.Text) 
     return; 
    ..... 
0

TextBox是一類,就像任何其他的,它有一個名爲屬性這是類型string

因此Text財產可能是nullString.Empty

你可以認爲它是這樣的:

public class TextBox : Control 
{ 
     public string Text {get; set;} 
     // other properties ... 
} 
1

我想:

public partial class MainWindow { 
    public MainWindow() { 
     InitializeComponent(); 
     Console.WriteLine("Text is empty:{0}", TextBox1.Text == string.Empty); 
     Console.WriteLine("Text is null:{0}", TextBox1.Text == null); 
     Console.WriteLine(); 

     Console.WriteLine("TextBox.Text = null") 
     TextBox1.Text = null; 
     Console.WriteLine("Text is empty:{0}", TextBox1.Text == string.Empty); 
     Console.WriteLine("Text is null:{0}", TextBox1.Text == null); 
    } 
} 

而且我得到了:

​​

所以我想TextBox.Text轉換成nullString.Empty

相關問題