创建一个对象数组?

时间:2011-05-31 15:37:09

标签: c# asp.net

似乎经常会问这个问题,但仔细查看了所有问题,我发现我仍然没有帮助。我正在迈出第一步,我需要创建一个具有属性“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. 
} 

4 个答案:

答案 0 :(得分:1)

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

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

或其中的一些变体。

答案 1 :(得分:1)

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

//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,因为这会允许有人用一个全新的数组替换你的属性。只提供一个吸气剂仍然允许有人操纵该物业。此外,通常我会推荐一个集合而不是一个数组,但是因为你想要一个固定大小的项目数量,一个数组可能更适合。

答案 2 :(得分:0)

你可以这样写:

public Products[] { get; set; }

并在你班级的构造函数中:

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

答案 3 :(得分:-1)

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