c# - 如何在枚举 C# 中使用 switch 语句

标签 c# enums switch-statement

我想使用 switch 语句来避免许多 if。所以我这样做了:

        public enum Protocol
        {
             Http,
             Ftp
        }

        string strProtocolType = GetProtocolTypeFromDB();

        switch (strProtocolType)
        {
            case Protocol.Http:
                {
                    break;
                }
            case Protocol.Ftp:
                {
                    break;
                }
        }

但是我在比较枚举和字符串时遇到了问题。因此,如果我添加了 Protocol.Http.ToString() ,则会出现另一个错误,因为它只允许进行 CONSTANT 评估。如果我把它改成这个

        switch (Enum.Parse(typeof(Protocol), strProtocolType))

这也不可能。那么,在我的案例中是否可以使用 switch 语句?

最佳答案

您需要将 Enum.Parse 结果转换为 Protocol 以使其工作。

switch ((Protocol)Enum.Parse(typeof(Protocol), strProtocolType))

关于c# - 如何在枚举 C# 中使用 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19958080/

相关文章:

c# - 设置全局化 Nuget 包

objective-c - 在 NSUserDefaults 中保存 typedef 枚举对象

java - 转账方法在银行程序中不起作用

.net - 网络服务 : Should returning or passing enums be avoided?

c - 在c (keil v5)uvision中通过字符串初始化枚举

php - SWITCH语句有相同条件和不同条件的两种情况

java - 增量运算符如何在开关盒中工作?

c# - 如何访问 WCF 中继承的对象属性?

c# - WCF Streaming - 限制速度

c# - Crystal 报表 : Missing Parameter Values