在C#中,字符串被实习。也就是说,如果我创建字符串foobar
并再次使用它,C#将只在内存中有一个字符串实例,虽然我将有两个引用,但它们都将指向同一个字符串实例。这就是为什么字符串必须在C#中不可变的一个原因。
现在,我的问题是,是否有可能以某种方式创建两个相同的字符串,以便它们不被实现,但我们最终在内存中有两个不同的字符串实例,有两个不同的地址,包含相同的文本?
若然,怎么样?
而且,这是否意外发生,或者您是否需要为此案例明确构建一个场景?
最后:假设内存中有两个单独的字符串实例具有相同的值,它们是否相等(以==
表示)?如果是这样,==
如何运作?首先通过引用进行比较,然后按值进行比较,或者......?