Visual Studio 停止使用“在特定区域”进行重构

Visual Studio Stop Refactoring Away Using In Specific Area

提问人:Brendan Lynn 提问时间:8/22/2023 最后编辑:Brendan Lynn 更新时间:8/26/2023 访问量:85

问:

通常,我可以通过在它周围包装两个语句来禁用烦人的警告。例如:pragma warning disable

#pragma warning disable IDE0060
public static int MultiplyByZero(int Number)
    => 0;
#pragma warning restore IDE0060

但是,请考虑以下情况:

我有一个文件,它在同一命名空间中使用了许多静态类。它们的名字非常可预测:

using static MyLib.Class0;
using static MyLib.Class1;
using static MyLib.Class2;
...
using static MyLib.Class9;

但是,我的类并不总是使用所有这些静态类。一次编辑后,它可能只使用 、 和 。之后,它可能只使用 .但我知道它总是会使用其中一些类。Class0Class3Class4Class1, Class3, and Class6

当我尝试保存我的文件时,Visual Studio 自然希望重构所有未使用的 s。毕竟,我告诉它这样做,我仍然希望其他未使用的 s 发生这种情况,只是不是这些。usingusing

Visual Studio 没有提供用于删除不必要的 ID 的 ID,但我在 Google 上查找了它,发现它是 .所以,就像任何优秀的程序员一样,我把它放在我的 s 周围:usingIDE0005using

#pragma warning disable IDE0005
using static MyLib.Class0;
using static MyLib.Class1;
using static MyLib.Class2;
...
using static MyLib.Class9;
#pragma warning restore IDE0005

Visual Studio 同意我的观点,即 s 是必要的,因为它没有像通常对不必要的 s 那样减轻它们。我以为这意味着它会做我想做的事。但是,当我单击保存时,我的 s 仍然消失了。pragmapragmausing

我查看了 Intellisense 对其他类型的建议。只有 ,其文档看起来相当可怕,与我的问题无关。pragmawarningchecksum

如何使 Visual Studio 保留特定语句?using

需要明确的是,我不是在寻找文件范围或项目范围的解决方案。在其他地方,我想要这个功能。我只需要一种方法来标记特定的代码位,这样就不会删除 s。using

编辑:

正如评论中的多个用户所指出的那样,这不是 Visual Studio 的默认行为。我在配置代码清理中选择了“删除不必要的导入或使用”。我没有想到不是每个人都这样做。所以我想问题真的是,“我怎样才能为特定的几行代码禁用代码清理”。

C# 可视化工作室 2022 编译指示 自动重构

评论

0赞 Peter B 8/22/2023
when I clicked save, my usings disappeared anyway- AFAIK,这不是 Visual Studio 的标准行为,它怀疑它是由 VS 设置引起的(如果存在这样的设置,不确定,也许是这个设置)或由安装的插件/扩展引起的。我的建议是浏览所有这些,看看是否可以在某个地方禁用它。
0赞 Brendan Lynn 8/22/2023
@PeterB不幸的是,这不是一个选择。我已经编辑了我的问题来解释原因。
0赞 Brendan Lynn 8/22/2023
需要明确的是,我没有任何扩展,但对于我从未使用过的 Nsight。
0赞 Peter B 8/22/2023
好的,我明白了。将它们更改为语句可能会起作用,有关详细信息,请参阅此处global using
0赞 Fildor 8/22/2023
您多久编辑一次使用更改该文件,为什么会这样?

答:

0赞 Brendan Lynn 8/26/2023 #1

正如用户在评论中所说,Visual Studio 中目前不存在这样的功能。希望将来会创建这样的功能,但目前还没有。

在那之前,我已经通过注释掉不必要的使用来解决这个问题。然后,当它们需要时,我可以简单地取消注释它们以使用它们。

无论如何,感谢那些尝试过的人。祝您编码愉快。