2014-11-16 43 views
1

问题两个部分Nested Class和帮助在C#

上设计跟踪使用的代码片段我们老师给我们提供任何数量的普通商店的库存的MDI项目工作。我的思考过程是“商店有一个名称和一个项目记录”,所以下面的类定义代表了我定义商店的程度。

第1部分)如何在类Store中创建未知数量的Record类数组?这个想法是,商店不会被限制在100个不同的项目中。对于每个项目,有一个记录,这应该能够考虑添加一个新记录。

第2部分)我将如何构建这个类以外的类?基本上,我将有一个窗口,要求提供有关该项目的信息(名称,ID号等)。我将如何创建一个新的记录放置在商店内?

感谢您的帮助。类定义如下。

using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace Inventory 
{ 
    class Store 
    { 
     public Store() { } 
     public Store(string name) { } 
     public string name { get; set; } 

     [Serializable] 
     class Record 
     { 
      public Record() { } 
      public Record(int ID, int Quantity, double Price, string Name) { } 
      public int id { get; set; } 
      public int quantity { get; set; } 
      public double price { get; set; } 
      public string name { get; set; } 
     } 
    } 
} 

回答

3

只需单独定义类并在另一个中定义一个集合。

我使用了一个私人setter,所以你只能在类中初始化它,然后在课堂外添加和删除项目。

namespace Inventory 
{ 
    class Store 
    { 
     public Store() : this(null) { } 
     public Store(string name) { 
      Records = new List<Record>(); 
     } 
     public string name { get; set; } 

     public List<Record> Records { get; private set; } 
    } 

    class Record 
    { 
     public Record() { } 
     public Record(int ID, int Quantity, double Price, string Name) { } 
     public int id { get; set; } 
     public int quantity { get; set; } 
     public double price { get; set; } 
     public string name { get; set; } 
    } 
} 
+0

This Works。谢谢。但是你会写什么来初始化它?我正在从一个充满文本框的表单中检索信息,那么我怎么会说“XXXXXXX = new Record();”并将其分配给列表?我熟悉Java列表,但对于c#还是新手。 –

+1

您可以在商店中添加一个方法来修改商店的“AddRecord(Record record)”或“AddCollection(List collection)”。它也可能做一些事情,如管理重复项目(库存 - 两次添加相同的记录意味着您可能有count = 2)。然后窗体创建列表并调用Store.Add(..)方法 – Prescott

+0

@prescott说了什么。 :)尝试实施它,然后显示你到目前为止的代码,如果你不能得到它的工作。 –