我要判断一个 string 是否为某一个数值,但是有可能为null所以直接 
if(a="a")
{
}
如果是null就抛出错误了
所以我一定要
if(a!=null)
{
    if(a=="a")
     {}
}
这样好麻烦,有没有什么办法能把他们写在一行?  或者是一个判断里面?

解决方案 »

  1.   

    奇怪了?&& 和 & 有什么区别?我用 & 就出错~~
      

  2.   

    string.IsNullOrEmpty(a)
    a.Equals("a")
      

  3.   

    string.IsNullOrEmpty(a)  如果工 a==null 或者 a=="" 这个string.IsNullOrEmpty(a) 都为对
      

  4.   

    string tmp=a==null?"":a;
    如果a=null,则tmp="";否则tmp=a
    然后
    if(tmp=="某个值")
    {}
    else
    {}
      

  5.   

    && 并且 如果左边为false 则不会在判断右边的情况
    & 逻辑与 两边都要判断的 
      

  6.   


    你的第一行if(a="a")写法上有错,应该为if(a=="a")或者是a.Equals("a")他返回的是布尔值
    把条件写一行就写一行了!
    if (a != null && a=="")就可以了
    鉴于楼主问题有些基础,可以去看看C#基础书籍
      

  7.   


    这样写肯定不会抛错:string a = null
    if(a == "a")
    {}
    if(a="a")???你这是在赋值还是比较啊
      

  8.   

    &&  短路与,左边表达式为false则不继续判断右边表达式
    &   逻辑与,左右两边表达式一定会执行
      

  9.   


    int & long 也可以,我认为这比 bool & bool 还严重。
      

  10.   


    我学的时候书上不是这么说的,而是$$逻辑与,&按位与。
      

  11.   

    符号打错了。
    我学的时候书上不是这么说的,而是&&逻辑与,&按位与。
      

  12.   

    if(a!=null && a=="a") 
    {}   
      

  13.   

    貌似有个方法叫:string.IsNullOrEmpty?那么你可以通过扩展string来实现各IsNullOrXXX
    如何扩展string,参考C#的最新规范。
      

  14.   

    if(!string.IsNullOrEmpty(a))
    {
       if(a.Equles("a")
       {   }
    }
      

  15.   

    if(null!=&&"a"==a)
    {}
    我一般都这样写.
      

  16.   

    if(null!=a && "a"==a)
    {} 上面写掉了
      

  17.   

    string a = null;if(a == "a")
    {
      //是不报错的-----VS2008测试
    }if(a.ToString() == "a")
    {
      //才会报错
    }
      

  18.   

    我突然发现string a = null; if(a == "a") 

      

    if(a.ToString() == "a") 

      //报错 null不能执行.ToString() 操作的
    } string a= string.Empty;
    if(a.ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString().ToString() == "a") 

      //这样可以的
    }