我注意到,例如,行为与List<T>其他简单对象不同String.这个问题看起来似乎是新手,但这真的让我感到震惊,因为我认为这List<T>是简单的对象.
以下面的代码为例:
List<String> ls1 = new List<String>();
ls1.Add("a");
List<String> ls2 = ls1;
ls1.Add("b");
Run Code Online (Sandbox Code Playgroud)
最后,ls1将等于,将{"a", "b"}如此ls2.这与此代码的行为完全不同:
String s1 = "a";
String s2 = s1;
s1 = "b";
Run Code Online (Sandbox Code Playgroud)
s1到底哪里等于b和s2等于a.
那意味着它List<T>实际上是指针对吗?
List<T>一个引用类型,所以是它的行为就像一个指针.
String也是一种引用类型,但字符串是不可变的,它们的行为类似于值类型(与引用类型形成对比),因此在某些情况下会引起混淆.
有一个很好的解释为什么字符串在这里工作:在C#中,为什么String是一个行为类似于值类型的引用类型?