在内部使用 switch 语句时 c# 函数出错

Error in c# function while using swith statement inside

我的 C# 代码有问题,我真的不知道为什么会出错!在我看来它应该可以工作,但它t. It doesn甚至无法编译。即函数:

public bool AddColumn(string tableName, string colName, ColType colType)
    {
        switch(colType) 
        {
            ColType.MYSQL_DOUBLE:   
                                    Console.Write("DOUBLE");
            ColType.MYSQL_INT:      
                                    Console.Write("INT");
            default:                
                                    Console.Write("DEFAULT");
        }
          return true;
    }

错误提示,缺少一个“;”和 '}'。因此,如果 If 尝试在函数的内容中发表评论,例如:

public bool AddColumn(string tableName, string colName, ColType colType)
    {/*
        switch(colType) 
        {
            ColType.MYSQL_DOUBLE:   
                                    Console.Write("DOUBLE");
            ColType.MYSQL_INT:      
                                    Console.Write("INT");
            default:                
                                    Console.Write("DEFAULT");
        }*/
          return true;
    }

我可以编译程序。因此 switch 语句内部有问题,不是吗?希望有人能帮我解决这个问题...

仅供参考,'ColType 类型在程序中声明:

public enum ColType
    {
        MYSQL_DOUBLE = 0,
        MYSQL_INT = 1
    };

您缺少 case- 和 break- 语句来区分您的开关中的大小写:

switch(colType) 
{
    case ColType.MYSQL_DOUBLE:   
        Console.Write("DOUBLE");
        break;
    case ColType.MYSQL_INT:      
        Console.Write("INT");
        break;
    default:                
        Console.Write("DEFAULT");
        break;
}

还要考虑这个:

Execution of the statement list in the selected switch section begins with the first statement and proceeds through the statement list, typically until a jump statement, such as a break, goto case, return, or throw, is reached.At that point, control is transferred outside the switch statement or to another case label. (https://msdn.microsoft.com/library/06tc147t.aspx)

这意味着虽然 case 将指示 switch-case 的开始 break(或任何其他中断执行的语句,例如 returnthrow)指示它的结束。

c# 中正确的 switch case

https://msdn.microsoft.com/en-sg/library/06tc147t.aspx

int caseSwitch = 1;
switch (caseSwitch)
{
    case 1:
        Console.WriteLine("Case 1");
        break;
    case 2:
        Console.WriteLine("Case 2");
        break;
    default:
        Console.WriteLine("Default case");
        break;
}

您错过了 switch 中的 case 关键字,并且在每种情况下都输入了 break,值得查看 MSDN

上的文档
switch(colType) 
{
     case ColType.MYSQL_DOUBLE:   
              Console.Write("DOUBLE");
              break;
     case ColType.MYSQL_INT:      
              Console.Write("INT");
              break;
     default:                
              Console.Write("DEFAULT");
              break;
 }