我问这个问题是因为我在我的解决方案中遇到了编译错误: '礼金券'是一个名称空间'但是像''
一样使用我尝试添加一个using指令,如: 使用GiftCard.Data.Entity;
这是找到GiftCard的正确命名空间,但错误不会消失。当我在我的代码中添加完全限定名称时,即GiftCard.Data.Entity.GiftCard
...然后错误消失,代码编译。
但我想知道为什么using指令不起作用。每次我需要使用该类型时,我都不想用完全限定的名称来混淆我的代码。不知何故,错误消息说我将GiftCard定义为某个名称空间。那么如何在我的解决方案中找到所有命名空间,以便我知道它的定义位置,因为我需要删除或重命名GiftCard命名空间。
答案 0 :(得分:5)
你有不同的问题和不同的问题。
问题
The Framework Design Guidelines说Do not use the same name for a namespace and a type in that namespace
。
例如,不要将Debug用作命名空间名称,然后再使用 在同一名称空间中提供名为Debug的类。几个编译器 要求这些类型完全合格。
那是:
namespace Debug
{
public class Debug{ … }
}
OR
namespace MyContainers.List
{
public class List { … }
}
为什么这么糟糕? Do not name a class the same as its namespace
回答问题
查看 - >对象浏览器(快捷方式: Ctrl + Alt + J )
答案 1 :(得分:2)
使用Powershell ......
dir -r -filter * .cs | Select-String -pattern" ^使用" | Select-Object -expand Line -unique |格式列表 - 属性行
在解决方案根目录中运行上面的内容,输出就像......
使用NUnit.Framework;
使用System.Collections;
使用System.Collections.Generic;
使用System.Linq;
使用System.Text;
使用System.IO;