Не обязательно хороший способ сделать это. Повышение кода предупреждения до ошибки является одним из вариантов. Но если вас интересуют только async
функции, которые возвращают результат, то есть Task<T>
, тогда есть возможность проверки времени компиляции.
Например:
public class ForceAwait
{
public Task<int> MethodAsync() => Task.FromResult(1);
public Task Caller_Does_Not_Compile()
{
int result = MethodAsync();
return Task.CompletedTask;
}
public async Task Caller_Compiles()
{
int result = await MethodAsync();
}
}
Путем явного ввода результата в T
вместо использования var
тогда компилятор может выдать ошибку, если вы попытаетесь присвоить Task<T>
переменной типа T
. Конечно, это только хитрость / хак, который не применим к методу, возвращающему Task
.