Двухчастный вопрос
Работа над программой MDI, предназначенной для отслеживания любого количества инвентарей универсальных магазинов, использующих фрагмент кода, предоставленный нам нашим учителем. Мой мыслительный процесс состоял в том, что "у магазина есть имя и запись элементов", поэтому определение класса ниже отражает степень того, что я определил в качестве хранилища.
Часть 1) Как создать массив неизвестного количества класса Запись в классе Store? Идея состоит в том, что магазин не будет ограничен, скажем, 100 различными предметами. Для каждого элемента есть одна запись, и это должно учитывать возможность добавления нового.
Часть 2) Как мне построить класс за пределами этого? В принципе, у меня появится окно, в котором запрашивается информация об элементе (имя, идентификатор Num и т.д.). Как создать новую запись в магазине?
Спасибо за помощь. Определение класса ниже.
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; }
}
}
}
Просто определите классы отдельно и определите коллекцию одного внутри другого.
Я использовал частный сеттер, чтобы вы могли инициализировать его только внутри класса, а затем добавлять и удалять элементы извне класса.
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; }
}
}
AddRecord(Record record)
илиAddCollection(List<Record> collection)
который изменяет хранилище. Это также может делать такие вещи, как управление дубликатами (инвентаризация - добавление одной и той же записи дважды означает, что у вас есть счет = 2). Затем форма создает список и вызывает метод Store.Add (..)