为什么不建议使用=="" 如题,请高手赐教。不胜感激 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 C#里好像没有这种说法把,string可以这么比较的。 if(!str.HasValue()) //写法1,如果str中无值if(str=null) //写法2,没有引用到任何位置if(str="") //写法3,str为空字符串(和null意义不同) 楼主看看MSDN:http://msdn.microsoft.com/zh-cn/library/system.string.empty.aspxhttp://social.msdn.microsoft.com/Forums/zh-CN/2212/thread/30087cdc-7fb1-4bcb-84ae-ab79236d4373/ msdn非常明确地写道“IsNullOrEmpty 方法是一种简便写法,与使用 == 的是等效的”。 http://msdn.microsoft.com/zh-cn/library/system.string.isnullorempty.aspx心灵脆弱的人是不是此时想太多了? 呵呵,还是多补充一句吧。其实我知道==跟Equals在某些时候逻辑含义不同,等等。问题是lz的问题让人担心这反而弄巧成拙,让我不得不小心,免得跟楼主一样啊! .net 4.0里多了IsNullOrWhiteSpace方法,在很多情况下使用更为方便 好像哪里看到过,说微软"不建议"使用string的Equals方法。 不建议的是"zifuchuan".Equals(一个对象),因为string的实例有Equals(object)方法,容易造成歧义。比如分明想要对比 "abcd" 和 someInstance.Value(没有重写SomeClass的ToString()方法的时候)如果使用"abcd".Equals(),写成"abcd".Equals(someInstance)不会报错的。这就容易造成一些隐性的bug,且不易在预编译和编译期间找出。但是string.Equals()这个静态方法还是推荐的,特别是带StringComparison参数的那一种,比较比较灵活。 楼上解释得很好,谢谢。好像哪里看到说微软设计string的Equals方法时,是想模仿java,但画虎类犬。我一般都不用Equals,而用String.Compare方法,可以处理大小写敏感,null值等,感觉比较方便。 C#读取txt文件中的数据内容 怎样在ToolStrip中加入DateTimePicker? (string)和ToString()的区别 数据打包如何配置数据库文件?? TCP通信问题 出现奇怪错误,请高手帮忙 录音 问题 求救 Foxpro2.6 的dbf文件,如何實現sql的检索结果(关鍵是能实现动态参数)? 关于VS2010旗舰版设置问题(新手提问,高手勿喷) 还是关于窗体间通讯的问题,YM中 如何在datagridview里边把某一列的内容用*显示,但又不改变它的原来的值. 一个函数如何返回多个值,或者返回一个集合
if(str=null) //写法2,没有引用到任何位置
if(str="") //写法3,str为空字符串(和null意义不同)
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/
http://msdn.microsoft.com/zh-cn/library/system.string.isnullorempty.aspx
心灵脆弱的人是不是此时想太多了?
不建议的是"zifuchuan".Equals(一个对象),因为string的实例有Equals(object)方法,容易造成歧义。
比如分明想要对比 "abcd" 和 someInstance.Value(没有重写SomeClass的ToString()方法的时候)如果使用"abcd".Equals(),写成"abcd".Equals(someInstance)不会报错的。这就容易造成一些隐性的bug,且不易在预编译和编译期间找出。
但是string.Equals()这个静态方法还是推荐的,特别是带StringComparison参数的那一种,比较比较灵活。
好像哪里看到说微软设计string的Equals方法时,是想模仿java,但画虎类犬。
我一般都不用Equals,而用String.Compare方法,可以处理大小写敏感,null值等,感觉比较方便。