Несколько экземпляров атрибута в C#
Одинаковый атрибут нельзя повесить дважды: компилятор выдаст ошибку.
Несколько меток удобны, когда у одного класса несколько тегов или ключевых слов.
Повесим на класс две метки и посчитаем их. Без AllowMultiple = true вторая такая же пометка не скомпилируется:
Console.WriteLine(
typeof(Bundle).GetCustomAttributes(typeof(LabelAttribute), inherit: false).Length); // выведет 2
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
class LabelAttribute : Attribute
{
public LabelAttribute(string text) => Text = text;
public string Text { get; }
}
[Label("a")]
[Label("b")]
class Bundle { }
Повесьте на класс Parcel три метки и выведите их количество.