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