簡體   English   中英

當有“FirstName”和“LastName”時,屬性“FullName”是否錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM