progs.biz  
Начало>C#>FAQ>Урок 5
C#
VB.NET
Visual C++.NET
Visual C++ 6
WinAPI
C++
Delphi
C++ Builder
Java
PHP
Visual Basic 6.0
DirectX
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

Г. Шилдт. C#: Учебный курс.
Г. Шилдт. C#: Учебный курс.
Заказать на Озоне


SpyLOG
Яндекс-цитирования

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)
    {
        ...
Рассылки нашего сайта на Subscribe.Ru
Visual C++, MFC
C# и .NET
VB.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX new!
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz
Label

 
 
Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2004 сайт progs.biz
© 2002-2004 Алексеев Игорь