c#:命名空间的问题
c#
我在使用 Visual Studio 2015 和 Framework 4.6.1 时遇到问题。
我有一个带有这个命名空间的业务层:BusinessLayer.LocalStorage. 在这个类(名为 LocalStorage)中,我有这个功能:
...
public static void XXX()
{
}
...
在具有相同框架 4.6.1 的主项目中,我有一个 Winform
using BusinessLayer.LocalStorage;
在加载中,我编写了函数,但无法识别引用:
我必须先添加LocalStorage:
LocalStorage.LocalStorage.XXX();
这样通话就正常工作了
为什么不能使用 LocalStorage.XXX()?我在 using clausules 中声明了我的命名空间。然后应该可以工作。
我在 BusinessLayer 项目中的目录中有这个类,因此命名空间应该是BusinessLayer.LocalStorage
代码是:
namespace BusinessLayer.LocalStorage
{
public class LocalStorage
{
...
public static void XXX()
{
}
...
}
}
回答
这是因为LocalStorage不明确,它可以是 namespaceLocalStorage或 class LocalStorage。您可以通过 3 种方式解决此问题:
-
LocalStorage完全删除命名空间并将其中的所有内容移动到BusinessLayer命名空间内 -
将类重命名为
LocalStorage其他名称 -
添加
using LocalStorage = BusinessLayer.LocalStorage.LocalStorage到您需要使用该类的文件顶部LocalStorage
编辑:选项 4。如果您非常希望保持当前的目录结构(使用 LocalStorage 目录),您也可以告诉 Visual Studio 目录 LocalStorage 不是命名空间提供程序。您可以通过在解决方案资源管理器中编辑文件夹的属性来执行此操作