如何像在 Java 中一样通过引用比较字符串?我知道 C# 的字符串按值与 ==
进行比较。
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
但是,以上2个字符串的情况并非如此。如何在不使用 StringBuilder
的情况下实现相同的效果?
最佳答案
您可以使用 String.Copy
创建一个新实例:
string s1 = "a";
string s2 = String.Copy(s1);
Console.WriteLine(Object.ReferenceEquals(s1,s2)); //False
关于java - C# 字符串/字符串 : Compare string like in Java (by Reference),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45293388/