我在某处有这行代码:
Sys.Attribute? testClassAttribute = Helpers.TryGetAttributeByFullName( type,
"Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute" );
当我选择字符串文字并按下 ReSharper 建议键时,最上面的建议是“捕获命名空间名称”。
我已经使用 ReSharper 多年了,以前从未见过这个建议。
(巴金斯大师,你真是充满惊喜。)
当我选择这个选项时,似乎什么也没有发生。
(这有点可怕:你必须想知道是否在某个地方发生了某些事情,而你只是看不到它。)
所以我去谷歌搜索
resharper "capture namespace name"
。谷歌表示没有任何结果,并恢复了不带引号的搜索,可以预见,结果是无用的。事实上,当我单独搜索"capture namespace name"
时,谷歌也说了同样的话。
因此,显然在可见宇宙中的任何地方都没有关于此 ReSharper 功能的任何文档。
有人知道这个 ReSharper 功能实际上是做什么的吗?
ReSharper 中的“捕获命名空间名称”功能是一个相对晦涩且不太常用的功能。它用于捕获所选类型或标识符的命名空间名称,并自动为该命名空间引入 using 指令。
其工作原理如下:
选择命名空间名称: 当您在代码中选择了类型或标识符,并且调用 ReSharper 建议时,如果建议“捕获命名空间名称”,则意味着 ReSharper 会自动检测并为包含所选类型的命名空间引入
using
指令或标识符。
介绍使用指令: 选择“捕获命名空间名称”选项通常会导致 ReSharper 分析所选类型的命名空间,并在必要时在文件顶部添加
using
指令。当您处理来自不同命名空间的类型并且您希望 ReSharper 为您管理 using
指令时,这会很有帮助。
例如,如果你有这样的课程:
namespace MyNamespace
{
public class MyClass { }
}
如果您选择了
MyClass
并选择“捕获命名空间名称”,ReSharper 可能会自动添加:
using MyNamespace;
位于文件顶部(如果文件尚不存在)。
验证: 您可能没有注意到立即发生的更改,因为 ReSharper 可能已确定所需的
using
指令已存在于您的文件中。在这种情况下,它不会重复该指令。
虽然此功能在某些情况下很有用,但它可能不像其他一些 ReSharper 功能那样常用。如果您的代码库组织良好并且您已经仔细管理您的
using
指令,您可能不会经常遇到此建议。
如果您对选择“捕获命名空间名称”后 ReSharper 执行的操作感到好奇,您可以检查代码文件的顶部,看看是否添加了新的
using
指令或是否修改了现有指令。这是一个微妙但方便的功能,用于维护干净且有组织的代码。