Я читаю этот блог: https://deniskyashif.com/2019/11/20/a-practical-guide-to-state-machines/
и есть этот фрагмент кода:
State ChangeState(State current, Input input) =>
(current, input) switch
{
(State.Created, Input.Admit) => State.Ready,
(State.Ready, Input.ScheduleDispatch) => State.Running,
(State.Running, Input.IOorEventWait) => State.Waiting,
(State.Waiting, Input.IOorEventComplete) => State.Ready,
(State.Running, Input.Interrupt) => State.Ready,
(State.Running, Input.Exit) => State.Terminated,
_ => throw new NotSupportedException(
$"{current} has no transition on {input}")
};
который я тестировал в Visual Studio, работает хорошо. Однако я понятия не имею, ПОЧЕМУ и КАК это работает. Я даже не знаю, ЧТО это должно быть. Я получаю, что часть State ChangeState(State current, Input input) =>
- это подпись метода и тело выражения, и я предполагаю, что (current, input) switch
- это какая-то сигнатура анонимного метода, но что это такое и почему не работает, если я вставляю ее штатным способом?