オブジェクトをパラメータとして受け入れるクラスによって変更されているオブジェクトのプロパティを変更するための次の2つの提案の最良の方法は何ですか?
- クラスにオブジェクトを処理させ、値を返し、それをオブジェクトに割り当てます
また。
- refキーワードを使用してオブジェクトを渡し、実際には何も返さずにクラスにオブジェクトを修正させます。
たとえば、名と名前のPersonオブジェクトと、フルネームを作成する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;
}
}