C#8 可空类型 (?) 与 ReSharper 可空性注释

发布于 2025-01-13 14:07:36 字数 158 浏览 0 评论 0原文

我正在开发一个 ABP 项目,注意到 ReSharper 自动将可空类型(如 string?)格式化为 [CanBeNull] string

与 C# 8 功能相比,使用 ReSharper Annotations 是否还有任何优势?

I'm working on an ABP project and noticed that ReSharper auto-formats a nullable type like string? to [CanBeNull] string.

Is there still any benefit to using ReSharper Annotations over C# 8 features?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我最亲爱的 2025-01-20 14:07:36

属性 [CanBeNull] 等是 ReSharper 实现可空性注释的方式。这可能是我的观点,但展望未来,我相信这些已经过时了。如果您使用 C# 8 可空类型,这些属性也会令人困惑和冲突。只需从项目中删除 ReSharper Annotations.cs 文件并更改代码以使用新的 ? 语法。

此外,您可能希望启用 ReSharper 配置选项“使用可以为空的注释而不是属性”。我不确定是否还有更多类似的选项,但我从未见过您上面描述的自动替换。

The attributes [CanBeNull] etc. were ReSharper's way of implementing nullability annotations. This may be my opinion, but going forward, I believe these are obsolete. If you use C# 8 nullable types, these attributes are confusing and conflicting, too. Just delete the ReSharper Annotations.cs file from your project and change the code to use the new ? syntax.

Additionally, you might want to enable the ReSharper configuration option "Use nullable annotation instead of an attribute". I'm not sure whether there are more similar options, but I have never seen an automatic replacement as you describe it above.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文