如题,请高手赐教。不胜感激

解决方案 »

  1.   

    C#里好像没有这种说法把,string可以这么比较的。
      

  2.   

    if(!str.HasValue()) //写法1,如果str中无值
    if(str=null) //写法2,没有引用到任何位置
    if(str="")  //写法3,str为空字符串(和null意义不同)
      

  3.   

    楼主看看MSDN:
    http://msdn.microsoft.com/zh-cn/library/system.string.empty.aspx
    http://social.msdn.microsoft.com/Forums/zh-CN/2212/thread/30087cdc-7fb1-4bcb-84ae-ab79236d4373/
      

  4.   

    msdn非常明确地写道“IsNullOrEmpty 方法是一种简便写法,与使用 == 的是等效的”。
       http://msdn.microsoft.com/zh-cn/library/system.string.isnullorempty.aspx
    心灵脆弱的人是不是此时想太多了?
      

  5.   

    呵呵,还是多补充一句吧。其实我知道==跟Equals在某些时候逻辑含义不同,等等。问题是lz的问题让人担心这反而弄巧成拙,让我不得不小心,免得跟楼主一样啊!
      

  6.   

    .net 4.0里多了IsNullOrWhiteSpace方法,在很多情况下使用更为方便
      

  7.   

    好像哪里看到过,说微软"不建议"使用string的Equals方法。
      

  8.   


    不建议的是"zifuchuan".Equals(一个对象),因为string的实例有Equals(object)方法,容易造成歧义。
    比如分明想要对比 "abcd" 和 someInstance.Value(没有重写SomeClass的ToString()方法的时候)如果使用"abcd".Equals(),写成"abcd".Equals(someInstance)不会报错的。这就容易造成一些隐性的bug,且不易在预编译和编译期间找出。
    但是string.Equals()这个静态方法还是推荐的,特别是带StringComparison参数的那一种,比较比较灵活。
      

  9.   

    楼上解释得很好,谢谢。
    好像哪里看到说微软设计string的Equals方法时,是想模仿java,但画虎类犬。
    我一般都不用Equals,而用String.Compare方法,可以处理大小写敏感,null值等,感觉比较方便。