如何从子类访问父类中的方法

时间:2013-08-12 06:16:22

标签: c#

我有一个在子类中的方法,我希望在父的帮助下获取它。

public class Class1
{
    private class Class2
    {
        public void Add(int a, int b) // Method in Class 2
        {
            this.Add(a, b);
        }
    }

    public Class1() // constructor of Class 1
    { 
        // Get this Add method by This.Add ??
        // Not able to fetch the Add method here.
    }
}

4 个答案:

答案 0 :(得分:2)

您已声明该方法,但它位于class2。这意味着您需要创建class2的实例才能使用方法

public class Class1
{
    private class Class2
    {
        public void Add(int a, int b) // Method in Class 2
        {
            this.Add(a, b);
        }
    }

    public Class1() // constructor of Class 1
    { 
        class2 cs = new class2();
        cs.Add(4,5);
    }
}

答案 1 :(得分:1)

您必须在Class1的构造函数中创建Class2的实例并使用实例方法,或者在Class2中更改方法Add to static

静态版

这样的东西
public class Class1
{
    private class Class2
    {
        public static void Add(int a, int b)
        {

        }
    }

    public Class1()
    {
        Class2.Add(1,2);
    }
}

实例版本

这样的东西
public class Class1
{
    private class Class2
    {
        public void Add(int a, int b)
        {

        }
    }

    public Class1()
    {
        new Class2().Add(1,2);
    }
}

也许看看static (C# Reference)

答案 2 :(得分:0)

public class Class1
{
    private class Class2
    {
        public void Add(int a, int b) // Method in Class 2
        {
            this.Add(a, b);
        }
    }

    public Class1() // constructor of Class 1
    {
        Class2 newclass2 = new Class2();
        newclass2.Add(1, 2);
        // Get this Add method by This.Add ??
        // Not able to fetch the Add method here.
    }
}

答案 3 :(得分:0)

您需要为Class2

创建实例
 public class Class1
 {
   private class Class2
    {
      public Class2() // constructor of Class2
      { 
      }

      public void Add(int a, int b) // Method in Class2
      {
        this.Add(a, b);
      }
    }

public Class1() // constructor of Class1
{ 
    Class2 cs2 = new Class2();
    cs2.Add(4,5);
}

}