我有一个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
{
get
{
return string.Format("{0} {1}", FirstName, LastName);
}
}
}
答案 0 :(得分:6)
两次数据不一样,你实际上是通过添加它来减少重复的代码。
如果不计算FullName并且必须与FirstName / LastName一起维护(保持同步,设置等),那将是不好的。
答案 1 :(得分:1)
而不是FullName
属性,提供ToString()
方法,它可以准确地返回您想要的内容。
public override string ToString()
{
return string.Format("{0} {1}", FirstName, LastName);
}
查看MSDN文档:How to: Override the ToString Method (C# Programming Guide)
用法:
Employee emp = new Employee();
emp.FirstName = "Maciej";
emp.LastName = "Los";
Console.WriteLine("Employee: {0}", emp.ToString());
//returns: "Employee: Maciej Los"
答案 2 :(得分:1)
相反,这是正确的方法。想象一下,如果你需要在FirstName和LastName之间添加一个Title(但是只有在给出一个Title之后)。如果您在任何地方使用像FullName这样的只读属性,则只需进行一次更改即可。如果您使用两个单独的属性,那么您需要到处进行更改(ifs和任何您需要的结果才能正确格式化)