检查 Visual Studio 中的使用指令引用

Check using directive reference in Visual Studio

EDIT3:由于 BahJiy

,重写了问题以供将来参考

是否有像 "Find Usages" 这样的 Visual Studio(或 ReSharper)命令来从 using 指令中查找 class 用法?


Find Usages 仅显示命名空间本身的引用(因此 "the only usage" 如下图所示)。

当我按照下面注释掉 using System.Reactive.Linq 行时,Observable 表示错误,它在当前上下文中不存在。

可以注释掉using指令并像上面一样检查错误,有没有比一个一个检查错误更好的方法?


答案:查找用法可以,光标位置很重要

正如下面对答案的评论中提到的,光标位置需要在 using,而不是命名空间。



旧题体
是否有 Visual Studio(或 ReSharper)命令告诉我哪些方法来自使用文件中 using SomeNamespace.SomeClass 定义的 SomeNamespace.SomeClass

当我遇到一些意外的命名空间时,我想检查用例。
Find Usages or All References on the using 指令只显示其他指令。

我可以删除非常有用的指令并检查文件中的错误,但我一定不知道更好的方法...


编辑 + 编辑 2:
一个例子可能有助于更好地阐明情况。

SomeClass.cs

namespace SomeNamespace {
    public static class SomeClass {
        public static string SomeExtensionMethod(this string s){
            // some implementation
        }
        /*
            More extension methods
        */
    }
}

Consumer.cs

using SomeNamespace.SomeClass

namespace OtherNamespace {
    public class Consumer {
        public void Consume(){
            string id = "someid";
            string after = id.SomeExtensionMethod;
        }
        /*
            More extension methods from SomeClass used
        */
    }
}

问题是,当我发现某些 Consumer 具有 using SomeNamespace.SomeClass 时,检查底层方法使用位置的最佳方法是什么?
有没有类似于Find Usages的命令可以获取ConsumerSomeNamespace.SomeClass的所有方法class?

通常只检查您的使用情况。 Visual Studio 只允许来自一个命名空间的 method/class 调用。如果您正在使用的多个命名空间中还有另外两个同名方法,Visual Studio 将强制您在调用中指定命名空间说明。

using Name1;
using Name2;

namespace Class1 {
    class Testing {
        public Testing {
            // this method only exists in Name1
            Method1 ( );
            // this method exist in both Name1 and Name2
            Name1.Method2 ( );
            Name2.Method2 ( );
        }
    }
}

所以如果你只看到

using SomeNamespace;

您会知道任何可能来自该命名空间的 classes 都特别来自 SomeNamespace。 如果有另一个 class 同名但也在不同的命名空间中,Visual Studio 将强制您在调用时输入该命名空间。

所以如果你看到你的使用是正常的,没有随机的

RandomNamespace.Class1 class1 = new RandomNamespace.Class1 ( );

你肯定知道没有什么是异常的。

您想知道是否需要导入导入的命名空间,因为使用了该命名空间中的类型?如果它在插件 "Productivity power tools" 中查看,例如有一个选项可以在保存时删除和排序使用