2013-08-12 3 views
2

У меня есть один метод, который находится в классе child, и я хочу получить это в 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. 
    } 
} 
+0

Ребенок и родитель звук слишком много как наследование. – chris

+0

Это не совсем понятно (для меня), что вы подразумеваете под Fetch/Get. Чего вы на самом деле пытаетесь достичь? –

ответ

1

Вы должны либо создать экземпляр Class2 в конструкторе Class1 и использовать метод экземпляра, или изменить способ добавить к статическому электричеству в Class2

Статическая версия

что-то как

public class Class1 
{ 
    private class Class2 
    { 
     public static void Add(int a, int b) 
     { 

     } 
    } 

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

Instance версия

Что-то вроде

public class Class1 
{ 
    private class Class2 
    { 
     public void Add(int a, int b) 
     { 

     } 
    } 

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

Может быть, посмотреть на static (C# Reference)

+0

На самом деле у меня другая концепция. Я хочу использовать this.Class1, потому что есть некоторые из свойств, которые я хочу установить в class1 на основе Class2 – Moiz

+0

Вы хотите вызвать метод Add, определенный в Class1 в Add, определенный в Class2? Будете ли вы использовать статический метод? Можете ли вы передать экземпляр класса 1 в Class2? –

+0

@Moiz Как бы вы это сделали? Поскольку Class2 является приватным, как экземпляр класса 2 существует до вызова конструктора Class1? –

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

}

Смежные вопросы