【发布时间】:2021-02-18 18:18:32
【问题描述】:
我有一个面向 .NET Standard 2.0 和 .NET 5.0 的 C# 程序(使用 <TargetFrameworks> 元素)。我在 .NET 5.0 上启用了可为空的引用类型。现在我得到了所有可以为空的引用类型警告,这正是我想要的。
但是,Intellisense 似乎没有显示正确的信息。例如,在 .NET 5.0 中,ToString() 现在返回 string?。但 Intellisense 向我显示它返回 string。
此外,如果我去定义,那也表明它返回类型string。
如何让 Intellisense 显示 .NET 5.0 签名?
【问题讨论】:
-
可能是超载掉了它。
-
@DanielA.White:不,因为如果我从标记为返回类型
string的方法返回结果,我会收到“可能返回空引用”警告。 -
那么这可能是一个错误。 bcl 类型返回非空值。 github.com/dotnet/runtime/blob/…
-
@DanielA.White:不是根据Microsoft。
-
@DanielA.White:不,这是因为我的目标是 .NET Standard 和 .NET 5.0,而 Intellisense 使用的是 .NET Standard 数据。如果我只针对 .NET 5.0,那么它可以按预期工作。
标签: c# .net-5 c#-8.0 nullable-reference-types