2013-12-25 4 views
1

Получить данные из производного класса. Мои образцы.Как получить данные из производного класса?

public class Maintest 
{ 
    public string name = "2"; 
} 

public class test : Maintest 
{ 
    string bla = name; 
} 

или

public class test : Maintest 
{ 
    test child = new test(); 
    string bla = child.name; 
} 

Пожалуйста, ответьте или Дайте ссылку, чтобы исследовать

Например, есть основной класс и у меня есть производный класс, который будет выводить данные из первого класс. В качестве примера я просто хотел передать значение производной в основном классе. Для правильного понимания

+0

Где вы хотите получить данные? В методе или конструкторе? – idlerboris

+0

Например, существует основной класс , и у меня есть производный класс, который будет выводить данные первого класса. В качестве примера я просто хотел передать значение производной в основном классе. Для правильного понимания – lails

ответ

1

При возврате поля из свойства, это может выглядеть немного что-то вроде этого.

using System; 

public class Program 
{ 
    public void Main() 
    { 
     var test = new Test(); 
     Console.WriteLine(test.greeting); 
    } 
} 

// make this abstract if you're never directly instantiate MainTest 
public abstract class MainTest 
{ 
    public string name = "world"; 
} 

public class Test : MainTest 
{ 
    public string greeting {get { return "Hello " + name;}} 
} 

http://dotnetfiddle.net/R8kwh3

Кроме того, вы можете применять договор, делая что-то вроде

public abstract class MainTest 
{ 
    public string name = "world"; 
    // create an abstract property to ensure it gets implemented in the inheriting class 
    public abstract string greeting {get; private set;} 
} 

public class Test : MainTest 
{ 
    public override string greeting {get { return "Hello " + name;}} 
} 
+0

Тх вы первый вариант. Второй не понимает, как еще не изучил абстрактные классы и переопределить - тип. – lails

+0

@lails абстрактный класс должен быть унаследован и никогда не создан. Объявление абстрактного свойства не обеспечивает реализацию аксессуаров свойств - оно объявляет, что класс поддерживает свойства, но оставляет реализацию доступа к производным классам. –

0

Возможно, вы хотите получить данные в методе? Таким образом, вы можете использовать это:

public class test : Maintest 
{ 
    public string GetData() 
    { 
     return name; 
    } 
} 
Смежные вопросы