Как вызвать метод, в засисимости от значения переменной?
судя по всему вы пытаетесь получить такое поведение. Но да, выглядит как не лучшее решение. Только я не понимаю откуда такая категоричность про использование 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()
        {
            // ...
        }
    }
судя по всему вы пытаетесь получить такое поведение. Но да, выглядит как не лучшее решение. Только я не понимаю откуда такая категоричность про использование 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()
        {
            // ...
        }
    }