Выделить абстрактный класс - C#

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

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

Здравствуйте, подскажите пожалуйста как можно "выделить" абстрактный класс из этих классов:
 public class NoProblemCommand: Command
    {
        public override string Name => Problems.ProblemTypes.noProblem.ToString();
        public override async void Execute(Message message, TelegramBotClient client)
        {
           if(!message.Text.Contains(this.Name))
                return;
                        await client.SendTextMessageAsync(message.From.Id, Problems.GetProblemResult(Problems.ProblemTypes.noProblem));
        }
    }
  public class PcProblemCommand: Command
    {
        public override string Name => Problems.ProblemTypes.pc.ToString();
        public override async void Execute(Message message, TelegramBotClient client)
        {
            if (!message.Text.Contains(this.Name))
                return;
            await client.SendTextMessageAsync(message.From.Id, Problems.GetProblemResult(Problems.ProblemTypes.pc));
        }
    }
Вот мой:
 public abstract class Command
    {
        public abstract string Name { get; }
        public abstract void Execute(Message message, TelegramBotClient client);
 
        public bool Contains(string command)
        {
            return command.Contains(this.Name) 
                && command.Contains(CustomConfigRetriever.GetConfig<TelegramBotConfigurationSection>().Name);
        }
    }
Хотелось бы добавить в класс Command привязку к Problems.ProblemTypes
Потому что таких классов планируется много

Решение задачи: «Выделить абстрактный класс»

textual
Листинг программы
    public class Command
    {
        public ProblemTypes ProblemType { get; }
        public virtual string Name {get { return ProblemType.ToString(); } }
 
        public virtual async void Execute(Message message, TelegramBotClient client)
        {
            if (!message.Text.Contains(this.Name))
                return;
            await client.SendTextMessageAsync(message.From.Id, Problems.GetProblemResult(ProblemType));
        }
 
        public bool Contains(string command)
        {
            return command.Contains(this.Name)
                && command.Contains(CustomConfigRetriever.GetConfig<TelegramBotConfigurationSection>().Name);
        }
    }

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


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

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

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