创建一个包含对象数组的类

时间:2010-04-17 00:26:23

标签: c#

下面的代码定义了一个ChargeCustomer类,它包含一个类型为“customers”的数组。我希望能够根据构造函数参数创建一个具有1个“客户”或2个“客户”的对象。这是在C#中这样做的正确方法:

public class ChargeCustomer 
{
    private Customer[] customers;

    public ChargeCustomer( string aName, string bName, int charge )
    {
        customers = new Customer[2];
        customers[0] = new Customer(aName, charge);
        customers[1] = new Customer(bName, charge);  
    }

    public ChargeCustomer( string bName, int charge )
    {
        customers = new Customer[1];
        customers[0] = new Customer( bName, charge );
    }

}

谢谢!

1 个答案:

答案 0 :(得分:9)

注意:这假设DropBox在原始问题中是错误粘贴。

你可以移动一些东西并使用params使用1个构造函数来表示任意数量的名称,如下所示:

public class ChargeCustomer 
{
  private Customer[] customers;

  public ChargeCustomer( int charge, params string[] names)
  {
    customers = new Customer[names.Length];
    for(int i = 0; i < names.Length; i++) {
      customers[i] = new Customer(names[i], charge);
    }
  }
}

使用这种方法,您只需先收取费用和任意数量的客户名称,如下所示:

new ChargeCustomer(20, "Bill", "Joe", "Ned", "Ted", "Monkey");

它将创建一个正确大小的数组,并使用相同的费用填充它,并通过循环传入的名称为每个名称1个客户。所有这些,可能会有一个更简单的整体解决方案,但是,如果不在Customer类之外进行更改(除了构造函数调用),这将是最简单的方法/最小的更改。