我正在为游戏编写代码,并希望将我的main方法包含在两个不同的命名空间中,以便它可以轻松访问“Engine”和“Core”命名空间中的所有类。
namespace Engine Core
{
class ExampleClass
{
}
}
虽然我只是在Engine和Core之间放了一个空格,但我知道这个语法不正确,我想知道如何使一个类成为多个命名空间的成员。如果这是不可能的,那么我能做的任何事情都会起作用吗? (这两个名称空间中的类都不得不通过'Engine。'或'Core。'来引用这个类。
答案 0 :(得分:2)
一个类不能属于两个不同的命名空间。
如果要引用Engine或Core名称空间的类而不是每次引用这些名称空间的类型时都显式写入名称空间,只需在文件开头使用using
即可。 using指令允许在命名空间中使用类型,这样您就不必限定在该命名空间中使用类型:
using Engine;
或
using Core;
查看文档:{{3}}
答案 1 :(得分:0)
您希望有人能够使用ExampleClass
和Engine.ExampleClass
访问Core.ExampleClass
吗?我不确定你为什么会这样做(我确定你有理由),但有两种方法可以揭露这样的事情:
namespace Foo
{
abstract class ExampleClass
{
//Only implement the class here
}
}
namespace Engine
{
class ExampleClass : Foo.ExampleClass
{
//Don't implement anything here (other than constructors to call base constructors)
}
}
namespace Core
{
class ExampleClass : Foo.ExampleClass
{
//Don't implement anything here (other than constructors to call base constructors)
}
}
或者您可以使用命名空间别名,但使用该类的每个cs文件都需要定义别名。
using Engine = Core;