C# 读取一个空文本框。文本为&引用;,空或字符串。是否为空?
当涉及到表单上的文本框时,这总是让我感到困惑。我知道C# 读取一个空文本框。文本为&引用;,空或字符串。是否为空?,c#,null,string,C#,Null,String,当涉及到表单上的文本框时,这总是让我感到困惑。我知道string可以是null或string.Empty,但是文本框可以吗 据我所知,一旦创建控件,它就会自动包含“文本”(我使用倒逗号,因为字段中可能没有文本,但字段存在) 因此,如果创建了文本框,TextBox.Text==null和TextBox.Text==String.Empty是否为false 或者这不是真的,因为TextBox.Text与文档中的string?相同 包含文本框的文本内容的字符串。默认值是 空字符串(“”) 因此,如果创
string
可以是null
或string.Empty
,但是文本框可以吗
据我所知,一旦创建控件,它就会自动包含“文本”(我使用倒逗号,因为字段中可能没有文本,但字段存在)
因此,如果创建了文本框,TextBox.Text==null
和TextBox.Text==String.Empty
是否为false
或者这不是真的,因为TextBox.Text
与文档中的string
?相同
包含文本框的文本内容的字符串。默认值是
空字符串(“”)
因此,如果创建了文本框,TextBox.Text
不是null
,而是String.Empty
set
{
if (value == null)
value = "";
if (value == this.Text)
return;
.....
您不能将null
值设置为控制文本,文本属性的设置器实现如下,根据实现null
将转换为empty
set
{
if (value == null)
value = "";
if (value == this.Text)
return;
.....
TextBox
是一个与其他类一样的类,它有一个名为Text
的属性,类型为string
因此Text
属性可以是null
或String.Empty
你可以这样想:
public class TextBox : Control
{
public string Text {get; set;}
// other properties ...
}
我试过:
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