以下 2 条建议中修改对象属性的最佳方法是什么,该对象正在由接受对象作为参数的类修改?
- 让类处理对象并返回一个值,然后将其分配给对象
或者。
- 使用 ref 关键字传递对象并让类修改对象而不实际返回任何内容。
例如,我有一个 Person 对象,其中包含 First Name 和 Last Name 以及 2 种不同的创建全名的方法。
哪个是最好的方法?
public static void Main()
{
Person a = new Person { FirstName = "John", LastName = "Smith" };
Person b = new Person { FirstName = "John", LastName = "Smith" };
NameProcesser np = new NameProcesser();
// Example A
a.FullName = np.CreateFullNameA(a);
// Example B
np.CreateFullNameB(ref b);
}
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullName { get; set; }
}
public class NameProcesser
{
public string CreateFullNameA(Person person)
{
return person.FirstName + " " + person.LastName;
}
public void CreateFullNameB(ref Person person)
{
person.FullName = person.FirstName + " " + person.LastName;
}
}