По сути, по какой-то причине я не получаю правильный тип перечисления, и я не могу понять, почему, мой код ниже, заранее большое спасибо за любые указатели/объяснения...
РЕДАКТИРОВАТЬ: type-> изменено на другое имя (спасибо, ребята, за внимание)
Помощник:
public static T Convert<T>(this string str)
{
return (T)Enum.Parse(typeof(T), str, true);
}
Значения перечисления:
public enum anothername
{
SmallText = 100,
Number = 15,
TextArea = 0,
Bool = 0,
Choices = 0,
}
Мой тест:
[Test]
public void EnumGetStringFromEnumType()
{
//arrange
var MaxLength = EnumHelper.Convert<anothername>("TextArea").ToString();
//act
//assert
Assert.AreEqual("TextArea", MaxLength);
}
РЕДАКТИРОВАТЬ:
Спасибо, удаление значений int решило это!
Однако... что, если бы я действительно хотел иметь значения для некоторых типов перечислений, а не для других, например.
public enum anothername
{
SmallText = 100,
Number = 15,
TextArea,
Bool,
Choices,
}
Тест 2:
[Test]
public void EnumGetIntValueOrStringFromEnumType()
{
//arrange
var MaxLength = EnumHelper.ToEnumSafe<anothername>("TextArea");
//act
//assert
Assert.AreEqual(null, (int)MaxLength);
}
У меня точно такая же проблема, когда я пытаюсь получить значения int, я получаю неправильные результаты... результат = 16
Type
немного сбивает с толку имяenum
в этом тесте. - person satnhak   schedule 15.04.2011