Задать вопрос
BitNeBolt
@BitNeBolt

Как вызвать метод, в засисимости от значения переменной?

Есть объект, в конструкторе которого указывается параметр. У объекта необходимо вызывать метод do(), который в зависимости от параметра должен выполнять другой метод. Как это реализовать без switch именно в c#?
  • Вопрос задан
  • 254 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
ayazer
@ayazer
Sr. Software Engineer
судя по всему вы пытаетесь получить такое поведение. Но да, выглядит как не лучшее решение. Только я не понимаю откуда такая категоричность про использование switch

public class Class1
    {
        private readonly Action _action;

        public Class1(string actionName)
        {
            switch (actionName)
            {
                case "1":
                    _action = Action1;
                    break;
                case "2":
                    _action = Action2;
                    break;
                default:
                    throw new Exception($"Unexpected action name {actionName}");
            }
        }

        public void Act()
        {
            _action.Invoke();
        }

        private void Action1()
        {
            // ...
        }

        private void Action2()
        {
            // ...
        }
    }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
if(arg == 'one') this.doOne();
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы