为什么在C#中异步/等待即使被告知不返回可为空的值?

问题描述

在给定以下C#代码的情况下,使用C#8,Visual Studio 2019 16.7.2:

#nullable enable

public async Task<string> GetStringAsync(); ...

public async void Main()
{
    var theString = await GetStringAsync();
    ...
}

将鼠标悬停在theString上会显示局部变量(字符串?)theString

我的GetStringAsync方法从不返回可为空的字符串,但该变量被推断为可为空。

这是一个智能错误吗?还是由于theString的某种工作原理,await实际上可以为null的事情更深入了?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)