簡體   English   中英

將空Textbox.Text讀為“”,null或String.Empty?

[英]Reading an empty Textbox.Text as “ ”, null or String.Empty?

當涉及到表單上的文本框時,這總是讓我感到困惑。 我知道一個string可以是nullString.Empty ,但可以是一個文本框嗎?

根據我的理解,一旦創建控件,它就會自動包含“文本”(我使用引號,因為雖然字段中可能沒有文本,但字段存在)。

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

或者這不是真的,因為TextBox.Textstring相同?

來自TextBox.Text文檔

包含文本框文本內容的字符串。 默認值為空字符串(“”)。

因此,如果創建文本框, TextBox.Text不為null ,則為String.Empty

您不能為控件文本設置null值,Text屬性的setter實現如下,按照實現null將轉換為empty

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

我試過了:

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);
    }
}

我得到了:

Text is empty:True
Text is null:False

TextBox.Text = null
Text is empty:True
Text is null:False

所以我猜TextBox.Text將null轉換為String.Empty

TextBox是一個類,與其他類似,它有一個名為Text的屬性,類型為string

因此Text屬性可以為nullString.Empty

你可以這樣想:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM