我注意到的行为List<T>
与其他简单对象不同,例如String
例如。这个问题看起来很新手,但这确实让我震惊,因为我认为List<T>
是简单的物体。
以下面的代码为例:
List<String> ls1 = new List<String>();
ls1.Add("a");
List<String> ls2 = ls1;
ls1.Add("b");
在最后,ls1
将等于{"a", "b"}
也会如此ls2
。这与这段代码的行为确实不同:
String s1 = "a";
String s2 = s1;
s1 = "b";
Where s1
最后等于b
and s2
等于a
.
这意味着List<T>
实际上是一个指针吗?
List<T>
a 参考类型,所以是的,它的行为就像一个指针。
String
也是一种引用类型,但字符串是不可变的,它们的行为类似于值类型(与引用类型对比)在某些情况下,因此您会感到困惑。
这里有一个很好的解释为什么字符串以这种方式工作:在 C# 中,为什么 String 是一种行为类似于值类型的引用类型? https://stackoverflow.com/questions/636932/in-c-why-is-string-a-reference-type-that-behaves-like-a-value-type
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)