我很怀疑,我知道所有参数或参数通常都是.net中c#中的值。通过我有相同的代码
public class Person {
public String Name { set; get; }
}
和其他类中的相同的简易方法
public Person Change(Person p) {
p.Name = "Angelina Jolie";
var p2 = new Person();
p2.Name = "Jennifer Aniston";
return p;
}
但是当我执行以下句子时,
public void Process() {
var list = new List<Person>();
var p = new Person();
p.Name = "Brad Pitt";
list.Add(p);
foreach (var p2 in list) {
var p3 = Change(p2);
System.Console.Write(p2.Name); // return Angelina Jolie
System.Console.Write(p3.Name); // return Jennifer Aniston
}
}
为什么“ person2”更改过程函数的值范围?我认为.NET总是通过引用使用参数,如果它在列表中,并且我们使用列表来访问对象