我对样式和性能方面的考虑感兴趣。我的选择是可以使用如下的(对不起,穷人的格式,但这个网站的界面不WYSIWYG):.NET C#switch语句字符串比较与枚举比较
一:
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;
}
就个人而言,我更喜欢下面的选项TWO,但除了基本的风格原因,我没有任何真正的原因。但是,我甚至不确定是否有风格的原因。感谢您的输入。
它会产生一个很好的面试问题 - 我建议你只能通过分析发现问题,因为它取决于Enum.Parse()的性能 - 当然,选项两个从排印错误角度来看更容易维护,即使性能可比... – 2009-12-22 17:08:41
+1将枚举值0标记为“未知”。 – 2009-12-22 17:40:49