如何判斷字符串是否為空串?

作者: Allen Lee  來源: 博客園  發布時間: 2008-09-08 22:57  閱讀: 4887 次  推薦: 0   原文鏈接   [收藏]  
 
[1] 如何判斷字符串是否為空串?
[2] 如何判斷字符串是否為空串?

0. 緣起:

本文寫作緣起于阮的討論——《FxCop告訴我,檢查一個字符串是否為空要用string.Length。》。其實用過FxCop的人都知道它會建議你使用String.Length屬性來判斷字符串是否為空串,但你又是否明白其中的緣由呢?今天有點閑,特意寫下這篇文章,希望有點幫助。

1. 三種常用的字符串判空串方法:

Length法:bool isEmpty = (str.Length == 0);
Empty法:bool isEmpty = (str == String.Empty);
General法:bool isEmpty = (str == "");
2. 深入內部機制:

    要探討這三種方法的內部機制,我們得首先看看.NET是怎樣實現的,也就是要看看.NET的源代碼!然而,我們哪里找這些源代碼呢?我們同樣有三種方法:
    Rotor法:一個不錯的選擇就是微軟的Rotor,這是微軟的一個源代碼共享項目。
    Mono法:另一個不錯的選擇當然就是真正的開源項目Mono啦!
    Reflector法:最后一個選擇就是使用反編譯器,不過這種重組的代碼不一定就是原貌,只不過是一種“近似值”,你可以考慮使用Reflector這個反編譯器[1]。
    這里我采用Reflector法,我們先來看看一下源代碼[2](片段):

 

Code

 

Rotor里面String類的代碼與此沒什么不同,只是沒有EqualsHelper方法,代之以如下的聲明:

 


public extern bool Equals(String value);

 

[第1頁][第2頁]
0
0
 
標簽:C# string
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()