我遇到的情况是,我的一个类称为SpaceMine
,而我的另一个类称为Ability
,并且其中嵌套了一个类,称为SpaceMine
:
public class SpaceMine
{
}
public class Ability
{
public class SpaceMine : Ability
{
void Foo()
{
SpaceMine spaceMine;
}
}
}
在Foo()
内,我试图声明类型为SpaceMine
的变量(不是Ability.SpaceMine
),但是它一直在说我的变量的类型为Ability.SpaceMine
。除了更改名称之外,如何确保编译器知道我要声明的类型?
答案 0 :(得分:2)
使用显式声明
namespace SpaceName
{
public class SpaceMine
{
}
public class Ability
{
public class SpaceMine : Ability
{
void Foo()
{
Ability.SpaceMine nestedMine; //Nested
//Ability is reducant but it improves readability a little
SpaceName.SpaceMine globalMine; //Not nested
}
}
}
}
答案 1 :(得分:0)
我希望您只需要使用完整路径即可。
我假设SpaceMine在命名空间中-如果不是,则需要将整个文件包装在命名空间中。
然后,您可以执行new YourNamespace.SpaceMine();
来获取父项,或者new YourNamespace.Ability.SpaceMine()
来访问嵌套项。
尽管可读性会受到严重影响,但我不建议您这样做。