如何在嵌套类中访问私有类方法

时间:2014-08-25 10:12:48

标签: c# oop

如何在此处访问方法DoSomething()?当我创建SomeClass类型的对象时,我无法访问它。

另一方面,在公共类中使用私有类有什么用?

public class SomeClass
{
    public string str = string.Empty;

    private class SomePrivateClass
    {
        public void DoSomething()
        {
            ...
        }
    }

}

2 个答案:

答案 0 :(得分:1)

您需要在外部类中创建嵌套类的对象:

public class SomeClass
{
    public string  str= string.Empty;

    private class SomePrivateClass
    {
         public void DoSomething()
         {

         }
    }
    public void CreateObjectOfSomePrivateClass()
    {
        SomePrivateClass obj = new SomePrivateClass();
        obj.DoSomething();
    }
}

答案 1 :(得分:0)

DoSomething是一个实例方法,一个public方法,这意味着任何可以访问该类型(类)定义的代码实际上都可以调用那种方法。由于SomePrivateClassSomeClass的私有类,因此只能在 SomeClass中实例化。您应该集中精力阅读有关静态成员和实例成员之间差异的更多信息(例如this MSDN article)。

话虽如此,私有类可以做的一件事是访问父类的私有字段(实例和静态,但是你需要有一个实例一个父类,以便调用其实例方法),其他类不能。