使用多个命名空间来描述一个类
本文关键字:一个 命名空间 描述 | 更新日期: 2023-09-27 18:26:37
我正在为一个游戏编写代码,并希望将我的主方法包含在两个不同的命名空间中,这样它就可以轻松地访问"引擎"answers"核心"命名空间中的所有类。
namespace Engine Core
{
class ExampleClass
{
}
}
虽然我只是在Engine和Core之间加了一个空格,但我知道这种语法是不正确的,我想知道如何使一个类成为多个名称空间的成员。如果这不可能,我能做些什么吗?(这两个命名空间中的类都不必通过"Engine."或"Core."引用此类。
using
即可。using指令允许在名称空间中使用类型,这样您就不必对该名称空间中的类型的使用进行限定:
using Engine;
或
using Core;
检查文档:使用指令
所以您希望有人能够使用Engine.ExampleClass
和Core.ExampleClass
访问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;