我有以下类:
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;
}
它更可读吗?不,其实你可能在做更多的伤害他们好.
通过使它返回一个Person对象,它可能会导致您相信,而不是修改Person参数,它实际上是基于p创建一个新的Person,但是使用不同的名称,并且有人可能会错误地假设p从未更改.
无论哪种方式,如果你有一个对类没有影响的方法,它应该是静态的.这有助于您确定它不会影响其类.只有在需要返回值时,方法才会返回值.
所以这里是我对这种方法的建议:
public static void ChangeName(Person p,String name)
{
p.Name = name;
}