Изменения в одном классе должны отражаться в другом - C#
Формулировка задачи:
Всем привет, нужна помощь) Опишу как смогу, надеюсь сможете понять.
Сейчас программа работает так:
Есть отдельная функция которая проходит по списку ItemInfo и для каждого запрашивает функцию, которая ищет наши значения в уже другом списке по классу ItemPrice:
Как бы сделать так, чтобы эти 2 класса можно было связать, но так..... Чтобы при изменении в ItemInfo изменялось и в списке с ItemPrice
//класс с описанием вещей (их много)
class ItemInfo
{
public string name;
public string i_classid;
public string i_instanceid;
public string priceTM = "Нажмите ";
public string priceMarket = " чтобы ";
public string priceOrder = " узнать";
public string price;
}
//класс с ценами и количеством для вещей (еще больше чем тех, что выше)
class ItemPrice
{
public string i_classid;
public string i_instanceid;
public string maxPrice = "-";
public int count = -1;
public int maxcount = -1;
}private string findpriceCS(string clas, string inst, string price = null)
{
if (price == null)
{
for (int i = 0; i < MasCSPrice.Count; i++)
{
if (MasCSPrice[i].i_classid == clas && MasCSPrice[i].i_instanceid == inst)
return MasCSPrice[i].maxPrice;
}
return "-";
}
else
{
bool aa = false;
for (int i = 0; i < MasCSPrice.Count; i++)
{
if (MasCSPrice[i].i_classid == clas && MasCSPrice[i].i_instanceid == inst)
{
if (price != "-")
MasCSPrice[i].maxPrice = price;
else
MasCSPrice.RemoveAt(i);
aa = true;
break;
}
}
if (!aa)
{
ItemPrice tmp = new ItemPrice();
tmp.i_classid = clas;
tmp.i_instanceid = inst;
tmp.maxPrice = price;
MasCSPrice.Add(tmp);
}
return null;
}
}Решение задачи: «Изменения в одном классе должны отражаться в другом»
textual
Листинг программы
using System;
class Item
{
string[,] ItemInfo =
{
{"name : ", ""},
{"i_classid : ", ""},
{"i_instanceid : ", ""},
{"price : ", ""}
};
string[,] ItemPrice =
{
{"i_classid : ", ""},
{"i_instanceid : ",""},
{"maxPrice : ",""}
};
public void SetInfo(string name = "-", string i_classid="-", string i_instanceid="-", string price="-")
{
ItemInfo[0, 1] = name;
ItemInfo[1, 1] = i_classid;
ItemInfo[2, 1] = i_instanceid;
ItemInfo[3, 1] = price;
ItemPrice[0, 1] = i_classid;
ItemPrice[1, 1] = i_instanceid;
ItemPrice[2, 1] = price;
}
public void SetPrice(string i_classid = "-", string i_instanceid = "-", string maxPrice = "-")
{
ItemPrice[0, 1] = i_classid;
ItemPrice[1, 1] = i_instanceid;
ItemPrice[2, 1] = maxPrice;
ItemInfo[1, 1] = i_classid;
ItemInfo[2, 1] = i_instanceid;
ItemInfo[3, 1] = maxPrice;
}
public void ShowInfo()
{
for (int j = 0; j < 4; j++)
Console.WriteLine(ItemInfo[j,0] + "" + ItemInfo[j,1]);
}
public void ShowPrice()
{
for (int j = 0; j < 3; j++)
Console.WriteLine(ItemPrice[j, 0] + "" + ItemPrice[j, 1]);
}
}
class test
{
static void Main()
{
Item soc = new Item();
soc.SetInfo("sword of chaos","sword","moscow","100");
Console.WriteLine("info : \n");
soc.ShowInfo();
Console.WriteLine("\nprice : \n");
soc.ShowPrice();
soc.SetPrice("hammer","london","200");
Console.WriteLine("\nизменение ItemPrice\n");
Console.WriteLine("price : \n");
soc.ShowPrice();
Console.WriteLine("info : \n");
soc.ShowInfo();
}
}