创建对象数组

本文关键字:数组 创建对象 | 更新日期: 2023-09-27 17:58:00

这个问题似乎经常被问到,但看完所有问题后,我发现我仍然没有得到帮助。我将进入oop的第一步,我需要创建一个属性为"Products"的对象,该对象是一个由"Product"类的多达7个可能对象组成的数组。我只是勉强理解{get;set;}方法,并且正在阅读它,但我希望我能在这里尝试做的语法方面得到一些帮助。我正在使用C#。我的代码如下:

public class Submission 
{
    public Submission() {}
    public int SubmissionId {get;set;}
    public int CustId {get;set;}
    public int BroId {get;set;}
    public int Coverage {get;set;}
            public Array Products // what goes here? It's a mystery. 
} 

创建对象数组

在这种情况下,我认为您不想要自动实现的属性。相反,这样做:

//backing store for your public property
private Product[] _products = new Product[7];
public Product[] Products { get {return _products;}}

然后在构造函数中:

foreach(var item in _products) {item = new Product(); }

您可以使用私有setter而不是显式后备存储来完成此操作,但我认为就设置数组的大小而言,这种方式更容易。

请注意,我只为该属性提供了一个getter。您不需要setter,因为这将允许有人用一个全新的数组替换您的属性。仅仅提供一个getter仍然允许有人操纵该属性。此外,通常我建议使用集合而不是数组,但由于您想要固定的项目数大小,因此数组可能更适合。

如果您要使用泛型集合,我会使用:

 public List<Product> Products { get; private set; } 

或其一些变体。

你可以这样写:

public Products[] { get; set; }

并且在类的构造函数中:

public Submission() { Products = new Product[7]; }

使用IList。您可以使用auto属性。