微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Intellisense 不反映可为空的引用类型

如何解决Intellisense 不反映可为空的引用类型

我有一个面向 .NET Standard 2.0 和 .NET 5.0 的 C# 程序(使用 <TargetFrameworks> 元素)。我在 .NET 5.0 上启用了可为空的引用类型。现在我得到了所有可以为空的引用类型警告,这正是我想要的。

但是,Intellisense 似乎没有显示正确的信息。例如,在 .NET 5.0 中,ToString() 现在返回 string?。但 Intellisense 显示它返回 string

Intellisense shows ToString() returns type string

此外,如果我转到定义,它也会向我显示它返回类型 string

如何让 Intellisense 向我显示 .NET 5.0 签名?

解决方法

问题是,虽然我的目标是框架的两个版本,但 Intellisense 选择了一个从中获取信息。就我而言,它选择了第一个:

<TargetFrameworks>netstandard2.0;net5.0</TargetFrameworks>

如果我更改项目文件中框架的顺序,以便 .NET 5.0 优先:

<TargetFrameworks>net5.0;netstandard2.0</TargetFrameworks>

Intellisense 现在向我显示 .NET 5.0 上的数据。

所以 Intellisense 使用的框架默认为列出的第一个。但是,您也可以从工具栏中的下拉菜单中选择使用哪个框架。

Select framework used by Intellisense

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。