Enum.GetValues ​​в WP7

Почему Enum.GetValues ​​() недоступен в Windows Phone 7 API, и означает ли это, что я вообще должен уклоняться от Enums в пользу структур или других механизмов.

Ответ 1

Почему Enum.GetValues ​​() недоступен в API Windows Phone 7

"Почему" связано с тем, что WP7 основан на "Compact Framework" - для экономии ресурсов компактная структура не содержит всех методов в полной структуре, а Enum.GetValues ​​() был одним из пропущенных.

делает это означает, что я вообще должен уклоняться из Enums в пользу структур или другие механизмы.

Нет - нет особых причин. Я бы рекомендовал вам продолжать использовать перечисление, где вы найдете их наиболее подходящим программным решением.

Ответ 2

Я столкнулся с этим. Для моих целей я смог использовать отражение

foreach (var x in typeof(MyEnum).GetFields()) {
  if (x.IsLiteral) {
    // Do my stuff here
  }
}

На самом деле это зависит от того, что вы делаете с ними.