Метод IsDefined
Статический IsDefined принимает тип
перечисления и значение - элемент enum или
число базового типа - и возвращает true,
если такая константа есть. Число, не
совпадающее ни с одним членом, даёт false.
Имя по одному значению ищут через
GetName.
Синтаксис
bool ok = Enum.IsDefined(Mark.Read);
bool ok2 = Enum.IsDefined(typeof(Mark), 99);
Пример
Давайте проверим объявленный элемент
Mark.Read:
using System;
enum Mark { None = 0, Read = 1, Write = 2 }
class Program
{
static void Main()
{
bool res = Enum.IsDefined(Mark.Read);
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте проверим число вне списка констант:
using System;
enum Mark { None = 0, Read = 1, Write = 2 }
class Program
{
static void Main()
{
bool res = Enum.IsDefined(typeof(Mark), 99);
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Пример
Давайте сравним Mark.None и число
0:
using System;
enum Mark { None = 0, Read = 1, Write = 2 }
class Program
{
static void Main()
{
bool byEnum = Enum.IsDefined(Mark.None);
bool byNum = Enum.IsDefined(typeof(Mark), 0);
Console.WriteLine(byEnum);
Console.WriteLine(byNum);
}
}
Результат выполнения кода:
True
True