2

我有一个在子类中的方法,我想借助它在 Parent 中获取它。

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

4 回答 4

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);
    }
}
于 2013-08-12T06:21:27.823 回答
1

您要么必须在 Class1 的构造函数中创建 Class2 的实例并使用实例方法,要么将方法 Add 更改为 Class2 中的静态

静态版

就像是

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);
    }
}

也许看看静态(C#参考)

于 2013-08-12T06:18:10.397 回答
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.
    }
}
于 2013-08-12T06:23:26.130 回答
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);
}

}

于 2013-08-12T06:29:56.793 回答