универсальная функция для возврата значения перечисления - PullRequest
0 голосов
/ 02 декабря 2010

У меня три разных Enum и все три имеют одинаковый идентификатор, но разные значения.Я хочу получить доступ к конкретному перечислению на основе некоторых условий.

например:

Public Enum Type1
     Font = 10
     Color = 11 
End Enum

Public Enum Type2
     Font = 20
     Color = 21
End Enum

Public Enum Type3
     Font = 30
     Color = 31
End Enum

И в зависимости от определенных условий мне нужен доступ к определенному перечислению.например,

if(somecondition = 1) 
    return Type1.Font
else if (somecondition = 2)
    return Type2.Font
else if (somecondition = 3)
    return Type3.Font

Мне нужно повторить ту же логику, чтобы получить доступ к другому идентификатору перечисления.Можно ли как-нибудь написать обобщенный метод, который возвращает мне значение перечисления?

, например,

public function GetEnumValue(enumtype, identifier) as integer

  return enumtype.identifier 

end function

Есть ли способ написать выше обобщенную функцию для возврата значения перечисления?

Обновлено: Я ищу метод, подобный GetEnumValue (Type1, Font), который возвращает значение перечисления в целочисленном виде (в данном случае 10 для type1.font)

Ответы [ 2 ]

3 голосов
/ 02 декабря 2010

IMO, вы неправильно используете перечисления. Вы должны иметь один enum и либо

  • три функции с переключателем
  • три словаря от вашего enum до int
  • украшает каждую запись в перечислении атрибутами для желаемых значений.

Ваша непосредственная проблема может быть решена с помощью Enum.Parse

1 голос
/ 02 декабря 2010

Ваш вопрос крайне неясен.

Возможно, вы ищете

return Enum.Parse(enumType, valueName);

Где enumType - это Type объект, а valueName - этострока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...