@AlexsandrLomaev

Как обновить значение переменной?

Всем доброго!
private void timer1_Tick(object sender, EventArgs e)
{
    switch(comboBox1.Text)
    {
        case "Дробовик":
            Damage = 36;
            Clip  = 6;
            Stock = 12;
            break;
        case "Автомат":
            Damage = 3;
            Clip  = 30;
            Stock = 60;
            break;
        case "Пистолет":
            Damage = 11;
            Clip  = 7;
            Stock = 21;
            break;
        case "Базука":
            Damage = 51;
            Clip  = 1;
            Stock = 2;
            break;
      }
}

таймер обновляет значение comboBox
но когда помещаю туда переменную с патронами вида -
label1 = Convert.ToString(Clip);
при клике на кнопку патроны должны отнимать -1 но из-за таймера оно возвращается в исходное значение, я предпологаю что я не правильно в таймер переменную вставляю.
прошу помощи
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 1
@vabka Куратор тега C#
Токсичный
Каждый тик таймера вы устанавливаете определённое значение переменной.
В вашем случае нужно где-то сохранять данные об оставшемся количестве.
Предлагаю вам завести класс, который хранит количество всего и поместить их в словарь.
Будет что-то наподобие
private Dictionary<string, Item> Inventory = new () {
    ["Дробовик"] = new () { Damage = 36, Clip = 30, Stock = 60 },
    ["Автомат"] = new () { Damage = 30, Clip = 30, Stock = 60 },
    ["Базука"] = new () { Damage = 51, Clip = 1, Stock = 2 }
};
public Item SelectedItem {get; set;}
private void timer1_Tick(object sender, EventArgs e) {
  SelectedItem = Inventory[combobox.Text];
}

А потом там где вы выводите текст:
label1.Text = SelectedItem?.Clip.ToString() ?? "";
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы