当前位置:  开发笔记 > 编程语言 > 正文

调用静态嵌套(depth> = 2)方法

如何解决《调用静态嵌套(depth>=2)方法》经验,为你挑选了1个好方法。

我写了一个小代码.

class Program
{
    static void Main()
    {
        Nested.Nested2.DoSomething();
    }

    class Nested
    {
        public class Nested2
        {
            public static void DoSomething()
            { }
        }
    }
}

有类Program有嵌套类Nested.类Nested也有嵌套类 - Nested2使用静态方法DoSomething().

Main我打电话DoSomething().

我的问题:为什么我可以调用这种方法Main.我知道这个方法是static,如果这个方法在Nestedclass(不是Nested2)里面,我可以调用它.为什么我不需要创建实例,Nested然后像这样调用此方法:

Nested nested = new Nested();
nested.Nested2.DoSomething();

为什么我可以访问Nested2(Nested.Nested2),而无需创建的实例Nested,如果Nested2static.

提前致谢.



1> HimBromBeere..:

实际上,你的内部类的完整名称Nested.Nested2.在这种情况下Nested,不是指类的实际实例,Nested也不是指任何静态成员,但可以将其视为命名空间.

这同样适用于Nested,Program.Nested在你的Program类之外实际调用.因此创建实例(假设Nestedpublic,在您的情况下不是这样):

var instance = new Program.Nested();

或者对于你的Nested2-class Program:

var instance = new Nested.Nested2();

或者Nested2来自外面的你的类Program:

var instance = new Program.Nested.Nested2();

这与你的成员没有任何关系,也没有与静态类相关的类,而是与类的实际名称有关.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有