[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.
У C# ви можете створити свій власний атрибут, визначивши новий клас, який успадковується від базового класу System.Attribute.
System.Attribute – є базовим класом для всіх атрибутів у мові. Атрибути використовуються для додавання метаданих до елементів коду, таких як класи, методи, властивості та поля. Потім ці метадані можуть бути отримані та оброблені під час виконання за допомогою рефлексії.
Клас System.Attribute визначає деякі властивості та методи, які успадковують усі атрибути. Ось кілька важливих із них:
- AttributeTargets – перерахування, що визначає типи елементів програми, до яких може бути застосовано атрибут.
- AllowMultiple – булева властивість, яка вказує, чи можна застосовувати атрибут більш ніж один раз до одного й того самого елемента програми.
- Inherited – булева властивість, що вказує, чи повинен атрибут успадковуватися похідними класами.
Ось приклад користувацького класу атрибута, який успадковується від System.Attribute:
1 2 3 4 5 6 7 8 9 10 |
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] public class MyCustomAttribute : Attribute { public string Description { get; set; } public MyCustomAttribute(string description) { Description = description; } } |
У цьому прикладі ми створюємо новий атрибут під назвою MyCustomAttribute. Він має єдину властивість Description. Ми також задаємо атрибут AttributeUsage, щоб вказати, де цей атрибут можна використати (у цьому випадку в класах і методах).
Щоб використовувати цей атрибут, ви можете просто вказати його над класом або методом атрибутом і вказати значення для властивості Description, як це зроблено тут:
1 2 3 4 5 6 7 8 9 10 11 |
[MyCustom("This is a description of my class")] public class MyClass { // class implementation } [MyCustom("This is a description of my method")] public void MyMethod() { // method implementation } |
Тепер ви можете використовувати рефлексію для доступу до атрибутів вашого класу або методу під час виконання. Наприклад, ви можете отримати властивість Description класу з атрибутом MyCustom, таким чином:
1 2 3 |
var myClass = new MyClass(); var attribute = myClass.GetType().GetCustomAttribute<MyCustomAttribute>(); string description = attribute.Description; |
Ви програміст-початківець, який хоче вивчити всі тонкощі мови C#?
Пройдіть наш тест на 13 запитань, щоб дізнатися, як багато ви знаєте насправді!
C# Braincheck |
Я сподіваюся, що вам сподобалося читати цю статтю, і вона виявилася легкою для розуміння. Будь ласка, дайте мені знати, якщо у вас є якісь коментарі або виправлення.
Так само вам може бути цікава попередня стаття – Як створити міграцію в EF Core.
Ви хочете навчитися писати код мовою програмування C#?
Створювати різні інформаційні системи, що складаються з сайтів, мобільних клієнтів, десктопних додатків, телеграм-ботів тощо.
Переходьте до нас на сторінку Dijix і ознайомтеся з умовами навчання, ми спеціалізуємося тільки на індивідуальних заняттях, як для початківців, так і для просунутих програмістів. Ви можете взяти як одне заняття для опрацювання питання, що вас цікавить, так і кілька, для більш щільної роботи. Завдяки особистому кабінету, кожен студент підвищить якість свого навчання, у вашому розпорядженні:
- Доступ до пройденого матеріалу
- Тематичні статті
- Бібліотека книг
- Онлайн тестування
- Спілкування в закритих групах