关于c#中按引用传递对象的一点疑惑
记得《C#经典入门(第5版)》中提到过:除了值类型的对象,其他对象都是按引用传递。
所以在下面的例子中,Init()执行完后,aaa新增了一个元素1.
class test1{ public test1() { var aaa = new List<int>(); Init(aaa); } private void Init(List<int> zzz) { zzz.Add(1); }}
class test2{ public test2() { List<int> aaa = null; Init(aaa); } private void Init(List<int> zzz) { zzz = new List<int>(); }}
class test3{ public test3() { List<int> aaa = new List<int>(); aaa.Add(1); Init(aaa); } private void Init(List<int> zzz) { zzz = new List<int>(); zzz.Add(111); }}
class test4{ public test4() { List<int> aaa = null; Init(out aaa); } private void Init(out List<int> zzz) { zzz = new List<int>(); }}