java - C# 字符串/字符串 : Compare string like in Java (by Reference)

标签 java c# string reference

如何像在 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/

相关文章:

java - 正则表达式动态忽略给定路径的某些部分

c# - 使用 javascript 将 .00 添加到 int 数字

python - Tkinter StringVar 错误

c# - 需要搜索优化方面的帮助

c# - Web api 不支持 POST 方法

java - 使用 Java HashSet 的两个字符串的交集

字符指针和数组

java - SeekBar 小数增量

java - 获取定义的值并在 Java 字符串方法中使用它们

java - 从父类(super class)调用子类构造函数 - Android (java)