Enum.TryParse возвращает true для любых числовых значений

Я сталкиваюсь с неожиданным поведением при использовании Enum.TryParse.

Если у меня есть перечисление:

public enum MyEnum
{
  ValueA,
  ValueB,
  ValueC
}

Затем я передаю числовое значение (в виде строки) в Enum.TryParse, например:

MyEnum outputEnum;
bool result = Enum.TryParse("1234", out outputEnum);

Несмотря на то, что строка «1234» не является возможным значением, результат вернется как истина, и мой outputEnum будет иметь значение 1234 .

Как я могу избежать такого поведения? Я пытаюсь написать функцию, которая будет обрабатывать произвольный строковый ввод как перечисление, и это немного повлияло на мое обнаружение неправильного ввода.

52
задан mweber 18 July 2011 в 15:27
поделиться