是一个属性";全名";坏的,当有";名字";以及";姓氏"
本文关键字:quot 坏的 当有 名字 姓氏 以及 全名 一个 属性 | 更新日期: 2023-09-27 18:01:07
我有一个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一起维护(保持同步、设置等(,那就太糟糕了。
相反,这是正确的方法。想象一下,如果你需要在FirstName和LastName之间添加一个Title(但前提是已经给定了一个(。如果在任何地方都使用像FullName这样的只读属性,则只需进行一次更改。如果您使用这两个单独的属性,那么您需要到处进行更改(If和任何需要正确格式化结果的内容(
提供ToString()
方法,而不是FullName
属性,它可以准确地返回您想要的内容。
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"