是什么原因导致c#编译器在using指令上说"使用指令是不必要的"?
大概是当前的命名空间.还有什么?这是在文档中的某个地方定义的吗?我无法找到谷歌搜索的确切答案.
编辑澄清,我正在寻找编译器看起来确定不需要指令的地方列表.
例如当前命名空间项目引用
我不是在寻找一个简单的修复方法(例如删除它)我试图理解它为什么会发生.指向我解释它的任何文档都会很棒.
"使用指令是不必要的"意味着当前C#代码文件中的任何内容都没有引用using指令的命名空间中的非命名空间限定类型.要修复此警告,您需要删除using指令或添加一些使用using语句引用的命名空间中的类型的代码.
我正在寻找编译器查找以确定不需要指令的位置列表.
由于命名空间是一个特定于程序集的东西,可以通过任何程序集进行扩展,因此没有这样的文档列表,因为它没有实际用途.但是,有几种方法可以找出消除警告消息的类型.
您可以使用对象浏览器来确定命名空间中的类型.
或者,您可以使用Intellisense在代码窗口中获取相同的信息.
可以使用Reflection获取特定程序集中该命名空间中所有类型的列表.
string nspace = "...";
var q = from t in typeof(SomeClassInTheAssembly).Assembly.GetTypes()
where t.IsClass && t.Namespace == nspace
select t;
q.ToList().ForEach(t => Console.WriteLine(t.Name));
Run Code Online (Sandbox Code Playgroud)
请记住命名空间可以跨越多个程序集,此方法可用于显示可添加的可能类型以删除警告.