2016-02-19 16 views
0

我的C#代码出现问题,我真的不知道,为什么会出现错误!在我看来,它很适合工作,但它甚至不能编译。这是功能:在使用swith语句时在c#函数中出错

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

错误说,theres失踪';'和'}'。所以,如果如果尝试评论的功能,如内容:

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语句里面存在一个问题,不是吗?希望有人可以帮我出这...

FYI类型“ColType在程序中声明:

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

一没有'case'的开关 –

回答

3

你错过了case关键字switch,也把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; 
} 
+1

你需要在默认情况下休息一下以及... –

+0

谢谢@JonSkeet ... – Adil

+1

哇,它真棒...我怎么会错过...羞耻在我身上:D。谢谢 – xy36

1

You're缺少case - 和break -statements到不同的内部情况下,您开关:

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

也可以这样考虑:STA的

执行在选定开关部分中的输入列表以第一个语句开始 ,并通过语句列表 继续执行,直到达到跳转语句(如break,goto case,return, 或throw)。此时,控制是转移到 切换语句之外或转移到另一个案例标签。 (https://msdn.microsoft.com/library/06tc147t.aspx

这意味着同时case将指示开始(即interupt执行诸如returnthrow或任何其他语句)表示其端部的开关壳体break的。在C#中

+0

这太容易了;)。我已经尝试过了。它不能解决问题。我得到了同样的错误。 – xy36

+0

你还加了'case'吗? – HimBromBeere

+0

是的,在Adil的帖子后,谢谢 – xy36

相关问题