0. 緣起:
本文寫作緣起於阮的討論——《fxcop告訴我,檢查乙個字串是否為空要用string.length。》
。其實用過fxcop的人都知道它會建議你使用string.length屬性來判斷字串是否為空串,但你又是否明白其中的緣由呢?今天有點閒,特意寫下這篇文章,希望有點幫助。
1. 三種常用的字串判空串方法:
2. 深入內部機制:
這裡我採用reflector法,我們先來看看一下源**[2](片段):
3. 最後總結:
從上面的分析我們可以看到,使用length法來進行字串判空串是有著很大的效能優勢的,尤其在進行大量字串判空時!當然首先得判斷字串例項是否為空引用!
有關reflector的介紹可以參見《reflector: get the secret inside .net assemblies.》
一文。本**反編譯自版本號為2.0.3600.0的.net framework。
void
foo(
string
bar)
class
string }//
.}
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);
public
extern
bool
equals(string value);
public
sealed
class
string : icomparable, icloneable, iconvertible, ienumerable, icomparable
<
string
>
//code here
public
static
readonly
string
empty;
public
static
bool
operator==(
string
a, string
b)public
static
bool
equals(
string
a, string
b)if
((a
!=null
) &&
(b !=
null
))return
false;}
private
static
unsafe
bool
equalshelper(
string
ao,
string
bo)//
code here
}private
extern
intinternallength();
public
intlength}//
code here}
C 基礎 判斷字串是否為空 判斷字元是否為數字
一 判斷字串是否為空 string.empty和string 是一樣的,同樣都是需要占用記憶體空間 空字串 但優先推薦使用string.empty console.writeline equals string.empty 結果 true 還一種高效判斷方法 s.length 0 來判斷字串是否為空...
C 判斷字串是否為空
c 中問號可以判斷字元 引用 事件等是否為空,比如 action?invoke 判斷action是否為空,不為空則呼叫,這樣就避免了用if語句進行是否為空的判斷。開發中會遇到解析json的情況 jsondata.code jslist code jsondata.version jslist ver...
c 判斷字串是否為整數
判斷乙個字串是否是正整數 public static bool isinteger string s 判斷乙個字串是否為合法數字 0 32整數 字串 public static bool isnumber string s 判斷乙個字串是否為合法數字 指定整數字數和小數字數 字串 整數字數 小數字數...