在私有类中:访问“外部类”的成员?

时间:2012-01-19 09:25:31

标签: c#

这是我的代码(只是一个揭露问题的片段):

public class A
{
    class B
    {
        //private class
    }

    public int nb;
}

我累了,但为什么我不能在私人课堂上访问“nb”?

4 个答案:

答案 0 :(得分:3)

可以在java中使用,但不能在C#中使用。

您需要将A的实例传递给B

答案 1 :(得分:3)

您需要一个A实例才能访问实例成员nb

public class A
{
    class B
    {
        public B()
        {
            A a = new A();
            int nb = a.nb;
        }
    }

    public int nb;
}

答案 2 :(得分:2)

在C#中,“外部”类只是内部类的“命名空间”。所以外部类没有被实例化。

答案 3 :(得分:0)

您需要将A的实例传递给B,如下所示:

public class A
{
    class B
    {
        private A _outerClass;
        public B(A outerClass)
        {
            _outerClass = outerClass;
            // Then you can access nb thus:
            _outerClass.nb;
        }

    }

    public int nb;
}