C# · 12月 22, 2021

c# – 通过参考:哪个更可读/正确?

我有以下类: 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;}