110,533
社区成员
发帖
与我相关
我的任务
分享
public class EmployeeRepository
{
readonly List<Employee> _employees;
public EmployeeRepository()
{
if (_employees == null)
{
_employees = new List<Employee>();
}
_employees.Add(Employee.CreateEmployee("John", "Smith"));
_employees.Add(Employee.CreateEmployee("John", "River"));
_employees.Add(Employee.CreateEmployee("Simon", "Cowell"));
}
public List<Employee> GetEmployees()
{
return new List<Employee>(_employees); //什么情况下一定要这么做呢?为什么不直接返回_employees?
}
}
public EmployeeRepository()
{
if (_employees == null)
{
_employees = new List<Employee>();
}
_employees.Add(Employee.CreateEmployee("John", "Smith"));
_employees.Add(Employee.CreateEmployee("John", "River"));
_employees.Add(Employee.CreateEmployee("Simon", "Cowell"));
}
而这里是构造函数,也就是说在类初始化的时候,是必须调用这个地方的,那么这个构造函数里面已经初始化_employees这个容器,接着在这个容器里面添加了三个Employee对象。所以这个时候你再调用GetEmployees()的时候,实际上_employees容器里面已经有三个Employee对象了 public List<Employee> GetEmployees()
{
return new List<Employee>(_employees); //什么情况下一定要这么做呢?为什么不直接返回_employees?
}
因为返回的Employee可能不止一个,是多个,所以需要用一个容器把他们包装起来。