По какой-то причине я не получаю правильный тип enum по какой-то причине и не могу понять, почему мой код указан ниже, большое спасибо за любые указатели / объяснения ...
РЕДАКТИРОВАТЬ: 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, я получаю неверные результаты ... result = 16