[英]Is a property “FullName” bad, when there are “FirstName” and “LastName”?
我有一個Employee
類:
class Employee
{
string FirstName { get; set; }
string LastName { get; set; }
}
有時我想得到全名,一次又一次地寫emp.FirstName + emp.LastName
是很乏味的。
添加FullName
屬性是不好的做法(因為它是相同的數據兩次或者什么)?
class Employee
{
string FirstName { get; set; }
string LastName { get; set; }
string FullName => $"{FirstName} {LastName}";
}
}
它不是兩次相同的數據,你實際上通過添加它來減少重復的代碼。
如果不計算FullName並且必須與FirstName / LastName一起維護(保持同步,設置等),這將是不好的。
而不是FullName
屬性,提供ToString()
方法,它可以准確地返回您想要的內容。
public override string ToString()
{
return string.Format("{0} {1}", FirstName, LastName);
}
看看MSDN文檔: 如何:覆蓋ToString方法(C#編程指南)
用法:
Employee emp = new Employee();
emp.FirstName = "Maciej";
emp.LastName = "Los";
Console.WriteLine("Employee: {0}", emp.ToString());
//returns: "Employee: Maciej Los"
相反,這是正確的方法。 想象一下,如果你需要在FirstName和LastName之間添加一個Title(但是只有在給出一個Title之后)。 如果您在任何地方使用像FullName這樣的只讀屬性,則只需進行一次更改即可。 如果你使用兩個獨立的屬性,那么你需要去任何地方進行更改(ifs和你需要的任何東西,以使結果正確格式化)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.