六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 30|回复: 0

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

[复制链接]

升级  88.33%

147

主题

147

主题

147

主题

举人

Rank: 3Rank: 3

积分
465
 楼主| 发表于 2013-2-4 22:09:50 | 显示全部楼层 |阅读模式
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)。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表