1

我有一种情况,我的一个类被调用SpaceMine,而我拥有的另一个类被调用,Ability并且其中嵌套了一个类,称为SpaceMine

public class SpaceMine
{

}

public class Ability
{
    public class SpaceMine :  Ability
    {
        void Foo()
        {
            SpaceMine spaceMine;
        }
    }
}

Foo()中,我试图声明一个类型SpaceMine(不是Ability.SpaceMine)的变量,但它一直说我的变量是类型Ability.SpaceMine。除了更改名称之外,我如何确保编译器知道我要声明的类型?

4

2 回答 2

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
            }
        }
    }
}
于 2019-03-07T11:07:25.097 回答
0

我希望您只需要使用完整路径。

我假设 SpaceMine 在命名空间内 - 如果不是,您需要将整个文件包装在命名空间中。

然后,您可以new YourNamespace.SpaceMine();获取父级或new YourNamespace.Ability.SpaceMine()访问嵌套的父级。

我不建议这样做,因为可读性受到严重影响。

于 2019-03-07T11:05:05.563 回答