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

Позиционные и именованные аргументы атрибута в C#

Синтаксис похож на вызов метода: сначала обязательные значения, затем Name = value для свойств.

Так в одной пометке задают и диапазон, и текст ошибки.

Опишем атрибут диапазона и повесим его на класс оценки. Числа 1 и 10 попадут в конструктор, а ErrorMessage задаётся по имени. Затем программа берёт эту пометку у типа и печатает нижнюю границу и текст ошибки:

using System.Linq; using System.Reflection; RangeAttribute meta = typeof(Score) .GetCustomAttributes(typeof(RangeAttribute), inherit: false) .Cast<RangeAttribute>() .Single(); Console.WriteLine(meta.Min); // выведет 1 Console.WriteLine(meta.ErrorMessage); // выведет "out" [Range(1, 10, ErrorMessage = "out")] class Score { } class RangeAttribute : Attribute { public RangeAttribute(int min, int max) { Min = min; Max = max; } public int Min { get; } public int Max { get; } public string? ErrorMessage { get; set; } }

Повесьте на класс Page пометку с границами 3 и 40 и текстом "full". Выведите нижнюю границу и этот текст.

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