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

SetsRequiredMembers

SetsRequiredMembers на конструкторе разрешает new Gate() без инициализатора, если конструктор сам пишет Name = "abcde". Без атрибута такой вызов не компилируется - в примерах его нет.

Синтаксис

[SetsRequiredMembers] public Gate() { Name = "abcde"; }

Пример

Давайте создать объект через конструктор:

using System; using System.Diagnostics.CodeAnalysis; class Gate { public required string Name { get; set; } [SetsRequiredMembers] public Gate() { Name = "abcde"; } } class Program { static void Main() { Gate gate = new Gate(); string res = gate.Name; Console.WriteLine(res); } }

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

"abcde"

Пример

Давайте создать второй экземпляр:

using System; using System.Diagnostics.CodeAnalysis; class Gate { public required string Name { get; set; } [SetsRequiredMembers] public Gate() { Name = "abcde"; } } class Program { static void Main() { Gate first = new Gate(); Gate second = new Gate(); bool res = first.Name == second.Name; Console.WriteLine(res); } }

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

True

Пример

Давайте проверить длину имени:

using System; using System.Diagnostics.CodeAnalysis; class Gate { public required string Name { get; set; } [SetsRequiredMembers] public Gate() { Name = "abcde"; } } class Program { static void Main() { Gate gate = new Gate(); int res = gate.Name.Length; Console.WriteLine(res); } }

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

5

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

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