在尝试设置Validations时,我最初在检查文本框是否为null时遇到了一些问题,我尝试使用
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"
}
}
Run Code Online (Sandbox Code Playgroud)
但它没有用,直到我试了这个
private void btnGo_Click(object sender, EventArgs e)
{
string name = textLogin.Text;
if (name == "")
{
labelError.Visiblle = true;
labelError.Text = "Field Cannot be Left Blank"
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我想知道("")和(null)之间的区别以及为什么null不起作用.
提前致谢
System.String.NET中的数据类型是一个类,一个引用类型.因此,空字符串(""或string.Empty)是对长度为零的值的引用,null而不引用实际值,因此任何尝试访问它引用的值都将失败.
例如:
string emptyString = "";
string nullString = null;
Console.WriteLine(emptyString.Length); // 0
Console.WriteLine(nullString.Length); // Exception!
Run Code Online (Sandbox Code Playgroud)
我建议您在验证代码中使用IsNullOrEmpty(或IsNullOrWhiteSpace)来处理这两种情况:
if (string.IsNullOrEmpty(name))
{
labelError.Visiblle = true;
labelError.Text = "Field Cannot be Left Blank"
}
Run Code Online (Sandbox Code Playgroud)
""是一个空字符串 vsnull这意味着“不存在”。
在您的情况下,您首先name将“不存在”进行比较,这是错误的,因为name确实存在。然后您与name空字符串进行比较,这是真的,因为它具有空字符串的值。
| 归档时间: |
|
| 查看次数: |
8347 次 |
| 最近记录: |