我對樣式和性能方面的考慮感興趣。我的選擇是可以使用如下的(對不起,窮人的格式,但這個網站的界面不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