繁体   English   中英

有关自动实现的属性C#的问题

[英]Question about Auto-Implemented Properties C#

我有以下代码:

void Main()
{
    List<Employee> employeeList;

    employeeList = new List<Employee>
    {
        {new Employee("000001", "DELA CRUZ, JUAN T.")},
        {new Employee("000002", "GOMEZ, MAR B.")},
        {new Employee("000003", "RIVERA, ERWIN J.")}
    };

    employeeList.Dump();
}

public class Employee
{
    public string EmployeeNo { get; set; }
    public string Name { get; set; }

    public Employee(string employeeNo, string name)
    {
        this.EmployeeNo = employeeNo;
        this.Name = name;
    }   
}

我应该如何仅使用属性创建Employee类的新实例并将该实例添加到employeeList中(我的意思是不使用employee的类构造函数)?

我已经提出了解决方案,但是太长了。 我应该如何缩短?

void Main()
{   
    List<Employee> employeeList;

    #region - I want to shorten these lengthy codes. 
    Employee employee1 = new Employee();
    employee1.EmployeeNo = "000001";
    employee1.Name = "DELA CRUZ, JUAN T.";

    Employee employee2 = new Employee();
    employee2.EmployeeNo = "000002";
    employee2.Name = "GOMEZ, MAR B.";
    // other employees...
    #endregion

    employeeList = new List<Employee>
    {
        employee1,
        employee2
    };

    employeeList.Dump();
}

public class Employee
{
    public string EmployeeNo { get; set; }
    public string Name { get; set; }    
}

你可以这样做

var list = new List<Employee> 
{
  new Employee {EmployeeNo = "000001", Name = "Peter Pan"}, 
  new Employee {EmployeeNo = "000002", Name = "King Kong"}
};

这个的

public class EmployeeList : List<Employee>
{
    public void Add(string no, string name)
    {
        this.Add(new Employee(no, name));
    }
}

var list = new EmployeeList 
{ 
  { "000001", "Peter Pan" }, 
  { "000002", "King Kong"} 
};

你可以做这样的事情

var employee1 = New Employee() { EmployeeNo = "000001", Name = "DELA CRUZ, JUAN T." };

这个怎么样?

void Main()
{   
    var employeeList = new List<Employee> {
                            new Employee { EmployeeNo = "000001", Name = "DELA CRUZ, JUAN T." },
                            new Employee { EmployeeNo = "000002", Name = "GOMEZ, MAR B." }
                       };

    employeeList.Dump();
}

public class Employee
{
    public string EmployeeNo { get; set; }
    public string Name { get; set; }    
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM