我有以下的类:
public class Person
{
public String Name { get; set; }
}
我有一个方法,它接受
Person
和String
作为参数:public void ChangeName(Person p, String name)
{
p.Name = name;
}
由于Person
是通过引用传递的,因此它应该更改传递实例的Name
。
但是,这种方法是否比上面的方法更易读?
public Person ChangeName(Person p, String name)
{
p.Name = name;
return p;
}
p
没有被传递为引用。 - Amberp
包含并传递了一个引用,但它不是“按引用传递” - 这两者之间有明显的区别。通过按引用传递(通过将参数声明为ChangeName(ref Person p, ...)
),可以允许像p = foo
这样的语句完全改变调用者变量所指向的 Person,而不仅仅是当前指向的 Person 的内容。 - Amber