Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1091 of 1492 menu
◀ ▶

Вызов base

В объявлении конструктора производного типа после списка параметров пишут двоеточие и base с аргументами для подходящего конструктора базового класса. Если base не указан явно, компилятор вызывает конструктор базы без параметров, когда он доступен. Вызов base должен быть первой инструкцией в теле конструктора, если он есть.

Синтаксис

public Производный(тип param) : base(param) { // дополнительная инициализация }

Пример

Давайте передадим строку в конструктор базы:

using System; class BaseText { public string Text; public BaseText(string text) { Text = text; } } class DerivedText : BaseText { public DerivedText(string text) : base(text) { } } class Program { static void Main() { var item = new DerivedText("abcde"); Console.WriteLine(item.Text); } }

Результат выполнения кода:

"abcde"

Пример

Давайте вызовем base с числом и допишем поле в производном классе:

using System; class BaseNum { public int Value; public BaseNum(int value) { Value = value; } } class ExtraNum : BaseNum { public int Extra; public ExtraNum(int value, int extra) : base(value) { Extra = extra; } } class Program { static void Main() { var item = new ExtraNum(3, 2); Console.WriteLine($"{item.Value} {item.Extra}"); } }

Результат выполнения кода:

3 2

Пример

Давайте сочетаем base с this в разных конструкторах одного наследника:

using System; class Root { public string Head; public Root(string head) { Head = head; } } class Branch : Root { public string Tail; public Branch() : this("12", "345") { } public Branch(string head, string tail) : base(head) { Tail = tail; } } class Program { static void Main() { var branch = new Branch(); Console.WriteLine(branch.Head + branch.Tail); } }

Результат выполнения кода:

"12345"

Смотрите также

  • наследование,
    которое связывает производный и базовый тип
  • цепочка this,
    которая вызывает другой конструктор того же класса
  • конструктор,
    который объявляют и в базе, и в наследнике
  • тип int,
    который часто передают в конструктор базы
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить