從這段源碼中我們看到
// Determines whether two Strings match
public static bool Equals(String a
if ((Object)a==(Object)b) {
return true;
}
if ((Object)a==null || (Object)b==null) {
return false;
}
return EqualsHelper(a
}
從這個代碼我們可以看出兩個string 類型在進行==操作符比較時先比較引用是否相等
一點建議
從時間角度考慮性能
如果對所有字符串都駐留
已經駐留
我們沒有必要再重新申請其它的內存來存儲相同的字符串
被頻繁用於比較
string s
string s
s
public static string TryIntern(string str)
{
internStr = string
return internStr == null? str: internStr;
}
[
From:http://tw.wingwit.com/Article/program/net/201311/15386.html