三種常用的字符串判空串方法
2011/1/19 16:29:11

  Length法:bool isEmpty = (str.Length == 0);
  Empty法:bool isEmpty = (str == String.Empty);
  General法:bool isEmpty = (str == "");
  首先是Empty法,由于String.Empty是一個靜態只讀域,只會被創建一次。但當我們使用Empty法進行判空時,.NET還會依次展開調用以下的方法,而后兩個方法內部還會進行對象引用判等!
  public static bool operator ==(string a, string b);
  public static bool Equals(string a, string b);
  private static unsafe bool EqualsHelper(string ao, string bo);
  若使用General法判等的話,情況就“更勝一籌”了!因為.NET除了要依次展開調用上面三個方法之外,還得首先創建一個臨時的空字符串實例,如果你要進行大量的比較,這恐怕是想一想就很嚇人了!
  而對于Length法,我們就可以繞過上面這些繁瑣的步驟,直接進行整數(字符串長度)判等,我們知道,大多數情況下,整數判等都要來得快(我實在想不出比它更快的了,在32位系統上,System.Int32運算最快了)!
  另外,我們還可以看到,在EqualsHelper方法里面.NET會先使用Length法來進行判等!可惜的是我無法獲得InternalLength方法的代碼。但我在Mono的源代碼里面看到更簡明的實現:
  class String
  ...{
  private int length;
  public int Length
  ...{
  get
  ...{
  return length;
  }
  }
  // .
  }
  然而使用Length法進行字符串判空串時,有一點要注意的,就是你必須先判斷該字符串實例是否為空引用,否則將會拋出NullReferenceException異常!于是,我們有了一個經過改進的Length法:
  void Foo(string bar)
  ...{
  if ((bar != null) && (bar.Length == 0))
  //
  }

返回列表
返回首頁 主站蜘蛛池模板: 亚洲日韩aⅴ在线视频| 欧美丰满大乳高跟鞋| 国产做无码视频在线观看浪潮 | 天天在线天天综合网色| 久久久久久一品道精品免费看| 美女性生活电影| 国产成人免费高清在线观看| 3p视频在线观看| 天天操夜夜操免费视频| 中文人妻熟妇乱又伦精品| 毛片视频网站在线观看| 国产在线|日韩| WWW免费视频在线观看播放 | 全彩熟睡侵犯h| 色综合a怡红院怡红院首页| 国产成人精品日本亚洲专区61| 5╳社区视频在线5sq| 日本一品道门免费高清视频| 人妻蜜と1~4中文字幕月野定规| 欧美成人18性| 国产自产视频在线观看香蕉| 丰满多毛的大隂户毛茸茸| 日韩电影免费在线观看网站 | 在线www天堂资源网| 久久精品国产一区| 男女同房猛烈无遮挡动态图 | tube人妖多泄精妖精| 最近免费中文字幕mv在线电影| 午夜福利视频合集1000| 538国产视频| 夜夜添狠狠添高潮出水| 久久久国产99久久国产一| 日韩高清第一页| 亚洲高清免费在线观看| 粗大的内捧猛烈进出在线视频 | 天天躁日日躁狠狠躁综合| 乱人伦xxxx国语对白| 白嫩少妇喷水正在播放| 无码国产福利av私拍| 免费黄色网址网站| 美国十次啦大导航|