C# (“空”)和(空)之间有什么区别
在尝试设置验证时,我最初在检查文本框是否为空时遇到了一些问题,我尝试使用C# (“空”)和(空)之间有什么区别,c#,winforms,C#,Winforms,在尝试设置验证时,我最初在检查文本框是否为空时遇到了一些问题,我尝试使用 private void btnGo_Click(object sender, EventArgs e) { string name = textLogin.Text; if (name == null) { labelError.Visiblle = true; labelError.Text = "Fie
private void btnGo_Click(object sender, EventArgs e)
{
string name = textLogin.Text;
if (name == null)
{
labelError.Visiblle = true;
labelError.Text = "Field Cannot be Left Blank"
}
}
但直到我试了这个,它才起作用
private void btnGo_Click(object sender, EventArgs e)
{
string name = textLogin.Text;
if (name == "")
{
labelError.Visiblle = true;
labelError.Text = "Field Cannot be Left Blank"
}
}
我的问题是我想知道(“”)和(null)之间的区别,以及为什么null不起作用
提前感谢正如
0
和空数组之间的区别一样:一切。它们是不同的价值观<代码>“是一个空字符串,这就是一个空白文本框所包含的内容,因为文本就是全部null
没有值,也不是空白文本框的值,因为Text
null
仅仅意味着对象(在本例中,textLogin.Text
对象)不存在。为此,textLogin对象不能存在。因此,在本例中,textLogin
对象不为null,因此,textLogin.Text
不能为null
另一方面,表示空字符串,表示文本框的文本中没有任何内容。i、 e.
textLogin.Text
中不包含任何字符。NET中的System.String
数据类型是一种引用类型。因此,空字符串(“”
或字符串.empty
)是对长度为零的值的引用,而null
不引用实际值,因此任何访问它引用的值的尝试都将失败
例如:
string emptyString = "";
string nullString = null;
Console.WriteLine(emptyString.Length); // 0
Console.WriteLine(nullString.Length); // Exception!
我建议您在验证代码中使用(或)来处理这两种情况:
if (string.IsNullOrEmpty(name))
{
labelError.Visiblle = true;
labelError.Text = "Field Cannot be Left Blank"
}
“
是一个空字符串,而null
表示“不存在”
在您的案例中,您首先将
name
与“不存在”进行比较,这是错误的,因为name
确实存在。然后将name
与空字符串进行比较,这是真的,因为它具有空字符串的值。您可以使用IsNullOrWhiteSpace
进行文本框输入验证。它检查null、空字符串或空白(制表符、空格等)。
文本框的默认值。文本
为字符串。空或“
非空。所以你的第一个代码不起作用null
只是表示对象没有指向任何东西,它没有分配任何内存。很简单,“
有一个有效值,即String.Empty
但null
没有任何值。区别在于”
表示空字符串,但null
表示它不存在用外行的话说,null
表示没有值,表示长度为零的字符串,这不是一回事。可能有一些软件将null
字符串和“
等同对待,例如Console.WriteLine
,但它仍然不能使它们成为相同的东西
严格地说,“”==null
表达式是设计的false
。NET framework中字符串
类型的相等性比较是通过,它不会将null
视为等于“
” 是你的朋友,因为出于验证的目的,想要对他们一视同仁是很常见的。”“意思是空杯子。空意味着什么前者是空的,后者是空的,不是吗?就像,空虚本身并不存在多谢澄清