Как избежать предупреждения компилятора 1998 - PullRequest
0 голосов
/ 20 сентября 2018

Мы используем конечный автомат, который предоставляет свойства для определения действий типа Func<Task<bool>>, которые указывают, должен ли инициироваться переход состояния.

Каков наилучший способ установить это свойство (конечного автомата) насвойство типа bool?

В настоящее время мы делаем это так:

private void SetupStateMachine()
{
    StateMachine.NotRunningToCloseDoorsViaStart = async () => AreAllDoorsClosed;
}

private bool AreAllDoorsClosed => _doors.All(door => door.IsClosed);

Но компилятор генерирует предупреждение 1998 тогда.Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 20 сентября 2018

Компилятор жалуется, что ваш метод не использует await, что позволяет добавить async, чтобы разрешить это.

Поскольку вы делаете не асинхронный код в этом делегатеправильный ответ - удалить async, но я думаю, почему вы его добавили, компилятор теперь будет жаловаться, что вы не возвращаете задачу.

Чтобы исправить это, оберните результаты в задачу:

StateMachine.NotRunningToCloseDoorsViaStart = () => Task.FromResult(AreAllDoorsClosed);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...