Me interesan las consideraciones de estilo y rendimiento. Mi elección es para hacer cualquiera de las siguientes situaciones (lo siento por los pobres formato, pero la interfaz de este sitio no es WYSIWYG):.NET C# switch statement string comparar versus comparación enum
Uno:
string value = "ALPHA";
switch (value.ToUpper())
{
case "ALPHA":
// do somthing
break;
case "BETA":
// do something else
break;
default:
break;
}
Dos:
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;
}
Personalmente, Prefiero la opción DOS a continuación, pero no tengo ninguna razón real aparte de las razones de estilo básico. Sin embargo, ni siquiera estoy seguro de que realmente haya una razón de estilo. Gracias por tu contribución.
Se haría una gran pregunta de la entrevista - me gustaría sugerir que sólo se iba a encontrar con seguridad por perfiles, ya que dependerá de la evolución de 'Enum.Parse()' - por supuesto, la opción dos es más fácil de mantener desde una perspectiva de error tipográfico, incluso si el rendimiento es comparable ... –
+1 para marcar el valor enum de 0 como "desconocido". –