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

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

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

Всем привет, нужна помощь) Опишу как смогу, надеюсь сможете понять. Сейчас программа работает так:
//класс с описанием вещей (их много)
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;
        }
Есть отдельная функция которая проходит по списку ItemInfo и для каждого запрашивает функцию, которая ищет наши значения в уже другом списке по классу ItemPrice:
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;
            }
        }
Как бы сделать так, чтобы эти 2 класса можно было связать, но так..... Чтобы при изменении в ItemInfo изменялось и в списке с ItemPrice

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

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();
        
    }
}

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


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

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

5   голосов , оценка 3.6 из 5
Похожие ответы