zoukankan      html  css  js  c++  java
  • .NET基础之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.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)。

    对于三种方法的评价:

    1.if(a=="") // ""需要实例化一个String对象,最差
    2.if(a==String.Empty) // String.Empty是常量,不需要实例化
    3.if(a.Length==0) // a.Length虽然最快,但是语意不如第2种清晰

    另,String.IsNullOrEmpty(value)判断的是该字符串是非为空,或者为空字符串.

    结论:推荐使用2.if(a==String.Empty),安全,稳定,语意清晰.

     

     

  • 相关阅读:
    敏捷开发(五)- 框架SCRUM内容
    敏捷开发(四)- 故事验收测试
    敏捷开发(三)- 估算故事
    敏捷开发(二)- 编写故事
    敏捷开发(一)- 搜集故事
    项目管理(十)- 开发准备列表
    项目管理(九)- 组织项目资源
    web 前端常用组件【04】Datetimepicker 和 Lodop
    让时间处理简单化 【第三方扩展类库org.apache.commons.lang.time】
    Word 打包 zip 并提供下载
  • 原文地址:https://www.cnblogs.com/gaole/p/3310964.html
Copyright © 2011-2022 走看看