[英]Reading an empty Textbox.Text as “ ”, null or String.Empty?
當涉及到表單上的文本框時,這總是讓我感到困惑。 我知道一個string
可以是null
或String.Empty
,但可以是一個文本框嗎?
根據我的理解,一旦創建控件,它就會自動包含“文本”(我使用引號,因為雖然字段中可能沒有文本,但字段存在)。
因此,如果創建文本框, TextBox.Text == null
和TextBox.Text == String.Empty
是假的?
或者這不是真的,因為TextBox.Text
與string
相同?
來自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
屬性可以為null
或String.Empty
。
你可以這樣想:
public class TextBox : Control
{
public string Text {get; set;}
// other properties ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.