读书人

C#基础疑问?解决方法

发布时间: 2011-12-28 22:45:21 作者: rapoo

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 == 比较。

[解决办法]
很多的.

读书人网 >asp.net

热点推荐