Изменения в одном классе должны отражаться в другом - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет, нужна помощь) Опишу как смогу, надеюсь сможете понять. Сейчас программа работает так:
Листинг программы
  1. //класс с описанием вещей (их много)
  2. class ItemInfo
  3. {
  4. public string name;
  5. public string i_classid;
  6. public string i_instanceid;
  7. public string priceTM = "Нажмите ";
  8. public string priceMarket = " чтобы ";
  9. public string priceOrder = " узнать";
  10. public string price;
  11. }
  12. //класс с ценами и количеством для вещей (еще больше чем тех, что выше)
  13. class ItemPrice
  14. {
  15. public string i_classid;
  16. public string i_instanceid;
  17. public string maxPrice = "-";
  18. public int count = -1;
  19. public int maxcount = -1;
  20. }
Есть отдельная функция которая проходит по списку ItemInfo и для каждого запрашивает функцию, которая ищет наши значения в уже другом списке по классу ItemPrice:
Листинг программы
  1. private string findpriceCS(string clas, string inst, string price = null)
  2. {
  3. if (price == null)
  4. {
  5. for (int i = 0; i < MasCSPrice.Count; i++)
  6. {
  7. if (MasCSPrice[i].i_classid == clas && MasCSPrice[i].i_instanceid == inst)
  8. return MasCSPrice[i].maxPrice;
  9. }
  10. return "-";
  11. }
  12. else
  13. {
  14. bool aa = false;
  15. for (int i = 0; i < MasCSPrice.Count; i++)
  16. {
  17. if (MasCSPrice[i].i_classid == clas && MasCSPrice[i].i_instanceid == inst)
  18. {
  19. if (price != "-")
  20. MasCSPrice[i].maxPrice = price;
  21. else
  22. MasCSPrice.RemoveAt(i);
  23. aa = true;
  24. break;
  25. }
  26. }
  27. if (!aa)
  28. {
  29. ItemPrice tmp = new ItemPrice();
  30. tmp.i_classid = clas;
  31. tmp.i_instanceid = inst;
  32. tmp.maxPrice = price;
  33. MasCSPrice.Add(tmp);
  34. }
  35. return null;
  36. }
  37. }
Как бы сделать так, чтобы эти 2 класса можно было связать, но так..... Чтобы при изменении в ItemInfo изменялось и в списке с ItemPrice

Решение задачи: «Изменения в одном классе должны отражаться в другом»

textual
Листинг программы
  1. using System;
  2. class Item
  3. {
  4.     string[,] ItemInfo =
  5.     {
  6.      {"name : ", ""},
  7.         {"i_classid : ", ""},
  8.         {"i_instanceid : ", ""},
  9.         {"price : ", ""}
  10.     };
  11.     string[,] ItemPrice =
  12.     {
  13.       {"i_classid : ", ""},
  14.       {"i_instanceid : ",""},
  15.       {"maxPrice : ",""}
  16.     };
  17.     public void SetInfo(string name = "-", string i_classid="-", string i_instanceid="-", string price="-")
  18.     {
  19.         ItemInfo[0, 1] = name;
  20.         ItemInfo[1, 1] = i_classid;
  21.         ItemInfo[2, 1] = i_instanceid;
  22.         ItemInfo[3, 1] = price;
  23.         ItemPrice[0, 1] = i_classid;
  24.         ItemPrice[1, 1] = i_instanceid;
  25.         ItemPrice[2, 1] = price;
  26.     }
  27.     public void SetPrice(string i_classid = "-", string i_instanceid = "-", string maxPrice = "-")
  28.     {
  29.         ItemPrice[0, 1] = i_classid;
  30.         ItemPrice[1, 1] = i_instanceid;
  31.         ItemPrice[2, 1] = maxPrice;
  32.         ItemInfo[1, 1] = i_classid;
  33.         ItemInfo[2, 1] = i_instanceid;
  34.         ItemInfo[3, 1] = maxPrice;
  35.     }
  36.     public void ShowInfo()
  37.     {
  38.         for (int j = 0; j < 4; j++)
  39.             Console.WriteLine(ItemInfo[j,0] + "" + ItemInfo[j,1]);
  40.     }
  41.     public void ShowPrice()
  42.     {
  43.         for (int j = 0; j < 3; j++)
  44.             Console.WriteLine(ItemPrice[j, 0] + "" + ItemPrice[j, 1]);
  45.     }
  46. }
  47. class test
  48. {
  49.     static void Main()
  50.     {
  51.         Item soc = new Item();
  52.         soc.SetInfo("sword of chaos","sword","moscow","100");
  53.         Console.WriteLine("info : \n");
  54.         soc.ShowInfo();
  55.         Console.WriteLine("\nprice : \n");
  56.         soc.ShowPrice();
  57.         soc.SetPrice("hammer","london","200");
  58.         Console.WriteLine("\nизменение ItemPrice\n");
  59.         Console.WriteLine("price : \n");
  60.         soc.ShowPrice();
  61.         Console.WriteLine("info : \n");
  62.         soc.ShowInfo();
  63.        
  64.     }
  65. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы