gpt4 book ai didi

c# - .NET C# switch 语句字符串比较与枚举比较

转载 作者:太空狗 更新时间:2023-10-29 19:56:35 24 4
gpt4 key购买 nike

我对样式和性能方面的考虑都很感兴趣。我的选择是执行以下任一操作(抱歉格式不佳,但该站点的界面不是所见即所得的):

一个:

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;
}

就个人而言,我更喜欢下面的选项二,但除了基本的风格原因外,我没有任何真正的原因。但是,我什至不确定是否真的有风格原因。感谢您的输入。

最佳答案

第二个选项稍微快一些,因为第一个选项可能需要完整的字符串比较。不过,在大多数情况下,差异太小而无法衡量。

第二个选项的真正优点是您明确表示 value 的有效值落在一个狭窄的范围内。事实上,如果字符串值不在预期范围内,它会在 Enum.Parse 处抛出异常,这通常正是您想要的。

关于c# - .NET C# switch 语句字符串比较与枚举比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1947645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com