FAQ по C# Вопрос 5. Как вызвать конструктор базового класса?
Ситуация такая - есть базовый класс и есть производные классы. У
базового класса есть некий конструктор с параметрами, код которого
должен выполнятся в каждом производном класса (т. е. это некий общий
код). Разумеется, писать этот код в каждоб производном классе не
логично. Правильно это делать через ключевое слово base:
...
public class C1
{
//Конструктор с параметром.
public C1(int a)
{
Console.WriteLine(a);
}
}
public class C2:C1
{
//Конструктор с параметром.
public C2(int a):base(a)
{
Console.WriteLine(a+1);
}
}
//Тестовый класс.
public class Test
{
public static void Main()
{
//Напечатается 100 и 101.
C1 s=new C2(100);
}
}
Т. е. в приведенном примере сначала вызовется конструктор базового класса, а потом конструктор производного.
При этом у двух конструкторов количество параметром может и не совпадать. Выглядеть это будет приблизительно так:
//Конструктор с параметром.
public C2(int a, int b):base(a)
{
...
|