在内部使用 swith 语句时 C# 函数中出错

本文关键字:函数 出错 语句 swith 在内部 | 更新日期: 2023-09-27 18:35:16

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

错误显示缺少";"和"}"。因此,如果尝试在函数的内容中进行注释,例如:

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

在内部使用 swith 语句时 C# 函数中出错

您错过了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;
 }

c# 中的正确开关大小写

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

您缺少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;
}

还要考虑这一点:

开始执行所选开关部分中的语句列表 使用第一个语句并继续浏览语句列表, 通常直到跳转语句,例如中断、转到大小写、返回、 或投掷,达到。此时,控制权转移到 切换语句或其他事例标签。(https://msdn.microsoft.com/library/06tc147t.aspx)

这意味着虽然case将指示开关大小写的开始break(或任何其他中断执行的语句,如returnthrow)表示其结束。