У меня есть базовый класс StockItem
и один под названием EcoStockItem
и подкласс Plate
. EcoStockItem
имеет объект Juice
, который является подклассом до EcoStockItem
. В другом классе у меня есть метод AddItem (StockItem p)
. Из класса Form1
следует отправить элемент StockItem
в качестве параметра к методу AddItem
? Я не мог получить доступ к другому свойству из подклассов. Как я должен это делать? Создайте объект StockItem
, чтобы наследовать все свойства из подклассов и добавить его в массив StockItem
?Доступ к свойствам подкласса
public class StockItem
{
private Juice newJuice;
public int Id { get; set; }
public string Name { get; set; }
public int StockCount { get; set; }
public StockItem(int Id, string Name, int StockCount)
{
this.Id = Id;
this.Name = Name;
this.StockCount = StockCount;
}
public StockItem()
{
// TODO: Complete member initialization
}
public StockItem(Juice newJuice)
{
// TODO: Complete member initialization
this.newJuice = newJuice;
}
public override string ToString()
{
return String.Format("Id:{0} Namn:{1} Count:{2}", Id,Name,StockCount);
}
}
public class EcoStockItem : StockItem
{
public string Markning { get; set; }
public EcoStockItem()
{
}
public EcoStockItem(string Markning)
{
this.Markning = Markning;
}
public EcoStockItem(int i, string n, int sc, string Markning):base (i,n,sc)
{
base.Id = i;
base.Name = n;
base.StockCount = sc;
this.Markning = Markning;
}
public override string ToString()
{
return String.Format("Mark: {0}", Markning);
}
}
public class Plate : StockItem
{
public string Typ { get; set; }
public Plate(string Typ)
{
this.Typ = Typ;
}
public Plate(int i, string n, int sc, string Typ):base (i,n,sc)
{
base.Id = i;
base.Name = n;
base.StockCount = sc;
this.Typ = Typ;
}
public Plate()
{
// TODO: Complete member initialization
}
public override string ToString()
{
return String.Format("Plate: {0}", Typ);
}
}
public class Juice : EcoStockItem
{
public string Typ { get; set; }
public Juice (string Typ)
{
this.Typ = Typ;
}
public Juice(int i, string n, int sc, string m,string Typ):base (i,n,sc,m)
{
base.Id = i;
base.Name = n;
base.StockCount = sc;
base.Markning = m;
this.Typ = Typ;
}
public Juice()
{
// TODO: Complete member initialization
}
public override string ToString()
{
return String.Format("Juice: {0}", Typ);
}
}
class Stock
{
public StockItem[] StockItems = new StockItem[10];
public void AddItem(StockItem item)
{
int index = GetCount();
StockItems[index] = item;
Form1.myForm.textBoxTest.Text = StockItems[index].ToString();
}
public int GetCount()
{
int count = 0;
for (int n = 0; n < StockItems.Length; n++)
{
if (StockItems[n] != null)
{
count++;
}
}
return count;
}
}
}
class Form1
private void buttonAdd_Click(object sender, EventArgs e)
{
newStockItem = new StockItem();
newStockItem.Id = id;
newStockItem.Name = name;
newStockItem.StockCount = stockcount;
newEcoStockItem = new EcoStockItem();
newEcoStockItem.Markning = markning;
newPlate = new Plate();
newPlate.Typ = typ;
newJuice = new Juice();
newJuice.Typ = jtyp;
//StockItem p = new StockItem(...........); ?????????????
Stock stock = new Stock();
//stock.AddItem(p);
Это школьный проект и скелет программы, предназначенный для uml. На самом деле нужна помощь в этом. Прикрепляется с этим в течение одной недели. – user2946383
# 1 должен ответить на ваш вопрос - 2 и 3 - только предложения. Если у вас есть проблема, добавьте более подробную информацию (конкретное сообщение об ошибке?) На ваш вопрос. –
Элемент массива в индексе 0 должен содержать оба свойства по базовому классу и подклассам. Я не знаю, как я создам ссылку на StockItem, которая будет содержать все субатрибрумер и отправит пары углов методу Add. – user2946383