開關

switch 語句是一個控制語句,用於從候選列表中選擇要執行的開關部分。switch 語句包括一個或多個 switch 部分。每個開關部分包含一個或多個 case 標籤,後跟一個或多個語句。如果沒有案例標籤包含匹配值,則控制權轉移到 default 部分(如果有)。嚴格來說,C#不支援案例轉換。但是,如果一個或多個 case 標籤為空,則執行將遵循包含程式碼的下一個 case 塊的程式碼。這允許使用相同的實現對多個 case 標籤進行分組。在下面的示例中,如果 month 等於 12,則 case 2 中的程式碼將被執行,因為 case 標籤 12 12 被分組。如果 case 塊不為空,

int month = DateTime.Now.Month; // this is expected to be 1-12 for Jan-Dec

switch (month)
{
    case 12: 
    case 1: 
    case 2:
        Console.WriteLine("Winter");
        break;
    case 3: 
    case 4: 
    case 5:
        Console.WriteLine("Spring");
        break;
    case 6: 
    case 7: 
    case 8:
        Console.WriteLine("Summer");
        break;
    case 9:     
    case 10: 
    case 11:
        Console.WriteLine("Autumn");
        break;
    default:
        Console.WriteLine("Incorrect month index");
        break;
}

case 只能用編譯時已知的值標記 (例如 1strEnum.A),因此 variable 不是有效的 case 標籤,而是 constEnum 值(以及任何文字值)。