是否可以创建一个函数,如果该函数旁边没有await关键字,则会引发错误? 我什么都没用,我很好奇,我想我可以看到,如果处理的数据极大地影响程序的运行,它可能会有用。
答案 0 :(得分:0)
不一定有个好方法。将警告代码提升为错误是一种选择。但是,如果您只关心返回结果的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
的方法。
答案 1 :(得分:0)
与DavidG达成协议。尝试将编译器警告级别设置为4,并为项目启用“将警告作为错误处理”。进行调试,发布和所有配置。