2016-02-19 14 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

相關問題