Результаты поиска
Преобразование enums в удобочитаемые значения
Кто-нибудь знает, как преобразовать значение enum в читаемое человеком значение?
Например:
ThisIsValueA должно быть "This is Value A".
Проверка Значений Перечисления
Мне нужно проверить целое число, чтобы узнать, является ли оно допустимым значением перечисления.
Как лучше всего это сделать в C#?
Преобразование строки в перечисление в C#
Как лучше всего преобразовать строку в значение перечисления в C#?
У меня есть тег HTML select, содержащий значения перечисления. Когда страница будет опубликована, я хочу взять значение (которое будет в виде строки) и преобразовать его в значение перечисления.
В идеальном мире я мог бы сделать нечто подобное:
StatusEnum MyStatus = StatusEnum.Parse("Active");
но это неверный код.
Кто-нибудь знает быстрый способ добраться до пользовательских атрибутов по значению enum?
Это, вероятно, лучше всего показать на примере. У меня есть перечисление с атрибутами:
public enum MyEnum {
[CustomInfo("This is a custom attrib")]
None = 0,
[CustomInfo("This is another attrib")]
ValueA,
[CustomInfo("This has an extra flag", AllowSomething = true)]
ValueB,
}
Я хочу добраться до этих атрибутов из экземпляра:
public CustomInfoAttribute GetInfo( MyEnum enumInput ) {
Type typeOfEnum = enumInput.GetType(); //this will be typeof( MyEnum )
//here is the problem, GetField takes a string
// the .ToString() on enums is very slow
FieldInfo fi = typeOfEnum.GetField( enumInput.ToString() );
//get the attribute from the field
return fi.GetCustomAttributes( typeof( CustomInfoAttribute ), false ).
FirstOrDefault() //Linq method to get first or null
as CustomInfoAttribute; //use as operator to convert
}
Так как это использует отражение, я ожидаю некоторую медлительность, но это кажется беспорядочным, чтобы преобразовать значение enum в строку (которая отражает имя), когда у меня уже есть его экземпляр.
У кого-нибудь есть лучший способ?