gpt4 book ai didi

c# - 在引用类型名称末尾键入 "?"时,如何阻止 Resharper 删除 [CanBeNull]?

转载 作者:太空宇宙 更新时间:2023-11-03 11:57:27 24 4
gpt4 key购买 nike

我正在经历将我的 .Net 4.8(不是 Core!)项目转换为使用新的 C# 8“可空引用”功能的过程。

为此,我通过添加 #nullable enable 依次更改每个源代码文件。并用 ? 修饰所有可为空的引用后缀。这使我能够零碎地转换我的所有代码以使用新功能。

现在考虑源文件中的以下方法 #nullable enable指定:

#nullable enable

[CanBeNull] public static string Test([CanBeNull] string arg)
{
return arg;
}

如果我输入“?”在 string 中的任何一个之后声明(为了使用新的 C# 8“可空”特性),Resharper 删除了 [CanBeNull]属性:

public static string? Test(string? arg)
{
return arg;
}

但是,如果该属性被删除,则 Resharper 不会警告我其他源文件中可能使用空引用。 (如果所有源文件都指定了#nullable enable,这将不是问题,但是因为我正在以零散的方式转换文件,所以有许多文件还没有指定#nullable enable ,因此编译器不会警告我可能使用空引用 - Resharper 也不会,因为 [CanBeNull] 已被删除。)

所以我的问题是:

有没有办法阻止 Resharper 删除 [CanBeNull]当我输入 ? 时的属性在引用类型名称的末尾?

我已经搜索了所有的 Resharper 选项,但我还没有为此找到一个。

最佳答案

我在 Resharper 支持论坛上提出了这个问题,并得到了解决方案:

https://resharper-support.jetbrains.com/hc/en-us/community/posts/360006676140-How-to-stop-Resharper-from-removing-CanBeNull-when-typing-at-the-end-of-a-reference-type-name-

修复它:

  1. 转到扩展 -> Resharper -> 选项 -> 环境 -> 编辑器行为 -> C#
  2. 找到并关闭选项“Annotate nullability on '!'/'?'在类型名称之后"。
  3. 找到并关闭选项“Annotate nullability on '!'/'?'在其他位置"

关于c# - 在引用类型名称末尾键入 "?"时,如何阻止 Resharper 删除 [CanBeNull]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58971090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com