Как избежать приведения типов? - C#

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

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

Помогите решить вопрос. Создал базовый класс, от которого наследуются все остальные.
class Item
{
  public string Name {get; set;}
  public string Description {get; set;}
}
 
class UsableItem : Item
{
  public int Cooldown {get; set;}
  public int Manacost {get; set;}
}
 
class ConsumableItem : Item
{
  public int Charges {get; set;}
}
Можно ли как-то изменить подход так, чтобы в будущем избежать проверки типов
UsableItem item = ...;
switch (item.GetType())
{
  case typeof(UsableItem):
    ...
    break;
  case typeof(ConsumableItem):
    ...
    break;
  etc.
}

Решение задачи: «Как избежать приведения типов?»

textual
Листинг программы
            Item item = new UsableItem()
 
            switch (item)
            {
                case UsableItem usable:
                    Console.WriteLine("usable: Cooldown {0} Manacost {1}", usable.Cooldown, usable.Manacost);
                    break;
                case ConsumableItem consumable:
                    Console.WriteLine("consumable: Charges {0}", consumable.Charges);
                    break;
            }

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


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

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

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