C#基础疑问?
我想请问下:
有很多代码
如下:
判断为Null时用
if(***==NULL)
也有人用
if(String.IsNullOrEmpty(**))
是否相等时
String A=null;
if(A== "a ")
有人用
if(A.Equals( "a "))
他们有什么区别 哪个写法更好!~!!
------解决方案--------------------效果都一样,只是分别采用运算符和代码实现而已,在效率上代码要高于运算符
------解决方案--------------------代码风格
------解决方案--------------------看你的习惯了啊
------解决方案--------------------Equals是对象的一种比较。
==只是比较运算符
IsNullOrEmpty,Equals都是某类对象的方法。
即Object.IsNullOrEmpty,Object.Equals
------解决方案--------------------Object.Equals 方法
确定两个 Object 实例是否相等。
使用 System.String.Length 属性或 System.String.IsNullOrEmpty(System.String) 方法比较字符串要比使用 Equals 的速度快得多。这是因为与 IsNullOrEmpty 或者为检索 Length 属性值并将其与零比较所需执行的指令数相比,Equals 执行更多的 MSIL 指令。
您应该注意,Equals 和 Length == 0 对于空字符串的行为表现不同。如果您试图获取空字符串的 Length 属性的值,公共语言运行库将引发 System.NullReferenceException。如果比较空 (null) 字符串和空 (empty) 字符串,则公共语言运行库不会引发异常;比较将返回 false。对空字符串进行测试不会显著影响这两种方法的相对性能。当目标为 .NET Framework 2.0 时,使用 IsNullOrEmpty 方法。否则,在可能的情况下请使用 Length == 比较。
------解决方案--------------------很多的.