Модификатор required
Ключевое слово required перед свойством
или полем требует явно присвоить значение
при создании экземпляра - в инициализаторе
объекта или в конструкторе. Если обязательный
член не задан, компилятор выдаёт ошибку.
Часто сочетают с init
или обычным set.
Синтаксис
public required тип Имя { get; set; }
var obj = new Класс { Имя = значение };
Пример
Давайте создадим объект с required
свойством в инициализаторе:
using System;
class Entry
{
public required string Key { get; set; }
}
class Program
{
static void Main()
{
var entry = new Entry { Key = "abcde" };
Console.WriteLine(entry.Key);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте зададим required свойство через
конструктор:
using System;
class Entry
{
public required string Key { get; set; }
public Entry(string key)
{
Key = key;
}
}
class Program
{
static void Main()
{
var entry = new Entry("12345");
Console.WriteLine(entry.Key);
}
}
Результат выполнения кода:
"12345"
Пример
Без инициализации required члена код
не компилируется:
class Entry
{
public required string Key { get; set; }
}
class Program
{
static void Main()
{
var entry = new Entry();
}
}
Компилятор потребует задать Key при
создании Entry.