之间有什么区别
TextBox1.Text = null;
和
TextBox1.Text = "";
清除或取消文本框,但是有什么特别的区别吗?
答案 0 :(得分:4)
假设您正在引用 WinForms ,这是来自System.Windows.Forms.Control
的ILSpy的摘录:
public virtual string Text
{
get
{
// ...
}
set
{
if (value == null)
{
value = "";
}
// ...
}
}
正如您所看到的,通过null
和string.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
控件的日常使用存在没有实际的差异。
答案 1 :(得分:0)
假设您指的是ASP.NET Web窗体:
""
是一个实际的字符串,长度为0。
null
表示字符串变量指向任何内容。因此不会产生价值。
当TextBox呈现为HTML时,没有区别。
答案 2 :(得分:0)
TextBox1.Text是TextBox类中可用的属性,其中在分配值之前添加了setter null check。下面的代码更简单。
string txt= string.Empty;
public string Text
{
get {
return txt;
}
set
{
if (string.IsNullOrEmpty(value))
{
txt = string.Empty;
}
else
{
txt = value;
}
}
}