六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 175|回复: 0

C#中判断空字符串的3种方法性能分析【月儿原创】

[复制链接]

升级  38.7%

580

主题

580

主题

580

主题

探花

Rank: 6Rank: 6

积分
1774
 楼主| 发表于 2013-1-27 04:35:01 | 显示全部楼层 |阅读模式
C#中判断空字符串的3种方法性能分析
作者:清清月儿
主页:http://blog.csdn.net/21aspnet/           时间:2007.4.28
 3种方法分别是:
string a="";
1.if(a=="")
2.if(a==String.Empty)
3.if(a.Length==0)

3种方法都是等效的,那么究竟那一种方法性能最高呢?本人用实验说明问题。
建立3个aspx页面(为什么用网页,主要是利用Microsoft Application Center Test )
WebForm1.aspx
private void Page_Load(object sender, System.EventArgs e)
  {
   string a="";
   for(int i=0;i<=1000000;i++)
   {
    if(a=="")
    {
    }
   }
  }
WebForm2.aspx
private void Page_Load(object sender, System.EventArgs e)
  {
   string a="";
   for(int i=0;i<=1000000;i++)
   {
    if(a==String.Empty)
    {
     
    }
   }
  }
WebForm3.aspx
private 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个压力测试项目:

测试结果:
WebForm1.aspx----------if(a=="")


WebForm2.aspx-------if(a==String.Empty)


WebForm3.aspx-------if(a.Length==0)

所以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)。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

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