Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как создать свой собственный атрибут в C#?

Inquisitor Гуру (4023), на голосовании 3 месяца назад
Как написать свой собственный атрибут? Для примера - существует неймспейс System.ComponentModel.DataAnnotations, где предусмотрены атрибуты типа:
[Required]
[StringLength(50, MinimumLength = 3)]
public string Name { get; set; }
Например я хочу, чтобы интовое поле было простым числом, или делилось на 4, или еще что-то
Голосование за лучший ответ
Manunich Мудрец (15891) 4 месяца назад
 using System; 

[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)]
public class PrimeNumberAttribute : System.Attribute
{
public PrimeNumberAttribute()
{
}

public bool IsPrime(int number)
{
if (number <= 1) return false;
if (number == 2) return true;
if (number % 2 == 0) return false;

for (int i = 3; i <= Math.Sqrt(number); i += 2)
{
if (number % i == 0)
{
return false;
}
}

return true;
}
}

public class MyClass
{
[PrimeNumber]
public int MyPrimeNumber { get; set; }
}
Похожие вопросы