none
C#有没有必要先判断TextBox是不是为空? RRS feed

  • 问题

  •  private void Button1_Click(object sender, EventArgs e)
    { if(!String.IsNullOrEmpty(this.TextBox1.Text)&&(this.TextBox1.Text==this.Label1.Text){MessageBox.Show("The same!");}}



     private void Button1_Click(object sender, EventArgs e)
    { if(this.TextBox1.Text==this.Label1.Text){MessageBox.Show("The same!");}}











    上面一句和下面一句是不是完全一样的?判断相等时,有没有必要先判断是不是为空?
    I am using Windows Server 2003, CentOS Linux 5.2, Windows XP, VirtualBox 3.0.4, Visual Studio 2005, Eclipse 3.5, NOtepad++ 5.4.5, Microsoft.NET Framework 2.0 SP2, C# 2.0, IIS 6.0, Apache 1.3.41, Nginx-0.7.61, SQL Server 2000, MySQL 5.0, FireBird 2.1.2, PHP 5.2.10, OpenOffice 3.1 and EIOffice2009 SP1.
    2009年8月28日 11:27

答案

  • 不一样, 当两个 Text 都为空时,第二个会弹出信息,第一个不会。是否需要判断空字符串具体还得看你的需求,如在注册用户名时,就需要判断注册的用户名是否为空字符串
    知识改变命运,奋斗成就人生!
    • 已标记为答案 dvdvip 2009年8月29日 11:38
    2009年8月28日 12:33
    版主
  • 你好!
         是否进行判断主要看你的具体需求,也就是说你的这个TextBox里面的Text是否允许是空字符串,如果不允许,需要在代码中判断!
    周雪峰
    • 已标记为答案 dvdvip 2009年8月29日 11:38
    2009年8月28日 13:55
    版主
  • String.IsNullOrEmpty是判字符串为null或""时都返回true
    在winform中,你添加一个TextBox 在Form中,这个TextBox的Text属性是"",不可能是null(除非你给它赋值)
    所以这里的String.IsNullOrEmpty只是判断等于不等于""
    如果你的Label1.Text始终不为"",那么只有下面的判断就行了。

    山西.net俱乐部
    • 已标记为答案 dvdvip 2009年8月29日 11:38
    2009年8月29日 2:33
    版主

全部回复

  • 不一样, 当两个 Text 都为空时,第二个会弹出信息,第一个不会。是否需要判断空字符串具体还得看你的需求,如在注册用户名时,就需要判断注册的用户名是否为空字符串
    知识改变命运,奋斗成就人生!
    • 已标记为答案 dvdvip 2009年8月29日 11:38
    2009年8月28日 12:33
    版主
  • 你好!
         是否进行判断主要看你的具体需求,也就是说你的这个TextBox里面的Text是否允许是空字符串,如果不允许,需要在代码中判断!
    周雪峰
    • 已标记为答案 dvdvip 2009年8月29日 11:38
    2009年8月28日 13:55
    版主
  • String.IsNullOrEmpty是判字符串为null或""时都返回true
    在winform中,你添加一个TextBox 在Form中,这个TextBox的Text属性是"",不可能是null(除非你给它赋值)
    所以这里的String.IsNullOrEmpty只是判断等于不等于""
    如果你的Label1.Text始终不为"",那么只有下面的判断就行了。

    山西.net俱乐部
    • 已标记为答案 dvdvip 2009年8月29日 11:38
    2009年8月29日 2:33
    版主