猿问

如何区分外部类和嵌套类

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


public class SpaceMine

{


}


public class Ability

{

    public class SpaceMine :  Ability

    {

        void Foo()

        {

            SpaceMine spaceMine;

        }

    }

}

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


开满天机
浏览 71回答 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            }        }    }}

杨__羊羊

我希望您只需要使用完整路径。我假设 SpaceMine 在命名空间内 - 如果不是,您需要将整个文件包装在命名空间中。然后,您可以new YourNamespace.SpaceMine();获取父级或new YourNamespace.Ability.SpaceMine()访问嵌套的父级。我不建议这样做,因为可读性受到严重影响。
随时随地看视频慕课网APP
我要回答