Как вы сказали, вам просто нужно:
Определение перечисления, содержащее его переменную, соглашение об именовании, которое включает в имя метода соответствующее состояние перечисления, вызов с отражением и обновлениемпеременная, содержащая перечисление .
Выше не сгенерированный код, но я не понимаю, почему не использовать его.Вы должны быть в состоянии испечь один быстро. Альтернатива, вместо использования отражения, будет содержать в списке для каждого состояния, которое будет вызываться Func <>, и генерировать это должно быть легко с помощью шаблона T4 .
пс.Я имею тенденцию быть намного более полезным, но способ, которым сформулирован вопрос, просил об этом ^ - ^.Тем не менее, я довольно серьезно отношусь к вышесказанному, выполнение любого из вышеперечисленных занимает не так много времени (особенно с помощью stackoverflow в любой части, которую OP может не знать) / и OP написал, что он сделал эторучные тонны раз.