jhlovett 发表于 2013-2-4 22:09:50

C#中判断空字符串的3种方法性能分析

3种方法分别是:
 
string a="";
1.if(a=="")
2.if(a==String.Empty)
3.if(a.Length==0)

3种方法都是等效的,那么究竟那一种方法性能最高呢?本人用实验说明问题。

建立3个aspx页面(为什么用网页,主要是利用Microsoft Application Center Test )

WebForm1.aspxprivate void Page_Load(object sender, System.EventArgs e){   string a="";   for(int i=0;i<=1000000;i++)   {   if(a=="")    {    }   }}WebForm2.aspxprivate void Page_Load(object sender, System.EventArgs e){   string a="";   for(int i=0;i<=1000000;i++)   {    if(a==String.Empty)    {         }   }}WebForm3.aspxprivate void Page_Load(object sender, System.EventArgs e){   string a="";   for(int i=0;i<=1000000;i++)   {    if(a.Length==0)    {    }   }} 
在Microsoft Application Center Test 下建立3个压力测试项目
3种方法测试的结果是98,105,168:
方法                        结果 
if(a=="")                           98 
if(a==String.Empty)          105 
if(a.Length==0)                168 

 
那么为什么if(a.Length==0)最快呢?
因为整数判断等于最快,没有经过实例化等复杂的过程。

所以:建议大家判断字符串是否为空用 if(a.Length==0)。
页: [1]
查看完整版本: C#中判断空字符串的3种方法性能分析