.NET, которую строка оператора переключения C# сравнивает по сравнению с перечислением, выдерживает сравнение

Я интересуюсь и стилем и соображениями производительности. Мой выбор состоит в том, чтобы сделать любое из следующих (извините для плохого форматирования, но интерфейсом для этого сайта не является WYSIWYG):

Один:

string value = "ALPHA";

switch ( value.ToUpper() )
{
   case "ALPHA":
     // do somthing
     break;
   case "BETA":
     // do something else
     break;
   default:
     break;
}

Два:

public enum GreekLetters
{
    UNKNOWN= 0,
    ALPHA= 1,
    BETA = 2,
    etc...

}

string value = "Alpha";
GreekLetters letter = (GreekLetters)Enum.Parse( typeof( GreekLetters ), value.ToUpper() );

switch( letter )
{
   case GreekLetters.ALPHA:
      // do something
      break;
   case GreekLetters.BETA:
      // do something else
      break;
   default:
      break;
}

Лично, я предпочитаю опцию ДВА ниже, но у меня нет настоящей причины кроме причин основного стиля. Однако я даже не уверен там, действительно причина стиля. Спасибо за Ваш вход.

7
задан Brian Rasmussen 22 December 2009 в 17:02
поделиться