如何通過引用比較字符串,如在Java中?我知道C#的字符串與==
的值進行比較。C#字符串/字符串:像Java中的比較字符串(通過引用)
Object.ReferenceEquals
也不能正常工作,因爲如果C#將現有地址的字符串分配給新字符串(如果其內容已存在於內部池中)。
我讀過這篇文章,他們認爲這樣的:
Comparing VALUE and REFERENCE of types
string str = "hello";
string str2 = new StringBuilder().Append("he").Append("llo").ToString();
我希望發生的事情就是這個效果:
string s1 = "a";
string s2 = "a";
Console.WriteLine(s1 == s2); //False
//Or
Console.WriteLine(Object.ReferenceEquals(s1,s2)); //False
然而,這對於上面的兩個字符串不是這種情況。如何在不使用StringBuilder
的情況下達到相同的效果?
StringBuilder有什麼問題? – shmosel
如果你真的想讓你的代碼做到這一點(而且你不只是試驗),我會建議你的設計出現嚴重錯誤。最終的結果將難以理解,我相信在不破壞某些東西的情況下維護將更加困難。如果你真的想建立一個概念,其中即使字符串值相同,兩個對象也可能不同,定義一個具有順序ID號的類作爲第二個字段,或類似的東西。 – ajb
我正在嘗試爲TexBox創建填充文本,例如「在此輸入」。我想查看「Type Here」是否與我的字符串具有相同的引用,所以我區分用戶何時有意輸入「Type Here」。這樣,我不會將用戶字符串視爲填充文本。 @ajb –