Изменения в одном классе должны отражаться в другом - 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(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д