Ian*_*Ian 9 c# coding-style design-guidelines
我有以下课程:
public class Person
{
public String Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有一个接受的方法Person和一个Stringas参数:
public void ChangeName(Person p, String name)
{
p.Name = name;
}
Run Code Online (Sandbox Code Playgroud)
由于Person通过引用传递,它应该更改Name传递的实例.
但这种方法比上面的方法更具可读性吗?
public Person ChangeName(Person p, String name)
{
p.Name = name;
return p;
}
Run Code Online (Sandbox Code Playgroud)
Cor*_*old 12
它更具可读性吗?不,实际上你可能会对他们造成更大的伤害.
通过让它返回一个Person对象,它可能会让你相信,而不是修改Person参数,它实际上是基于p创建一个新的Person但具有不同的名称,有人可能错误地认为p永远不会改变.
无论哪种方式,如果你有一个对类没有影响的方法,它应该是静态的.这有助于您确定它不会影响其课程.只有方法返回一个值,如果需要它返回一个值.
所以这是我对这种方法的建议:
public static void ChangeName(Person p, String name)
{
p.Name = name;
}
Run Code Online (Sandbox Code Playgroud)