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

Первичный конструктор

Параметры в круглых скобках после имени class или record образуют первичный конструктор: аргументы доступны во всём теле типа как обычные параметры. Для class часто сохраняют их в поля или свойства; у record позиционные параметры автоматически становятся свойствами записи.

Синтаксис

class Имя(тип param1, тип param2) { // param1 и param2 доступны здесь } record Row(string Text, int Num);

Пример

Давайте объявим класс с первичным конструктором и свойствами:

using System; class TagPair(string left, string right) { public string Left { get; } = left; public string Right { get; } = right; } class Program { static void Main() { var pair = new TagPair("ab", "cde"); Console.WriteLine($"{pair.Left} {pair.Right}"); } }

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

"ab cde"

Пример

Давайте создадим record с позиционными параметрами:

using System; record CodeRow(string Text, int Num); class Program { static void Main() { var row = new CodeRow("abcde", 5); Console.WriteLine($"{row.Text} {row.Num}"); } }

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

abcde 5

Пример

Давайте используем параметр первичного конструктора в методе экземпляра:

using System; class Prefix(string head) { public string Build(string tail) { return head + tail; } } class Program { static void Main() { var prefix = new Prefix("12"); Console.WriteLine(prefix.Build("345")); } }

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

"12345"

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

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