Errore del compilatore CS0163

Il controllo non può passare da un'etichetta case ('label') a un'altra

Quando un'istruzione switch contiene più sezioni switch, è necessario terminare in modo esplicito ogni sezione, inclusa l'ultima, usando una delle parole chiave seguenti:

Se si vuole implementare il comportamento "fall through" da una sezione alla successiva, usare goto case #.

L'esempio seguente genera l'errore CS0163.

// CS0163.cs  
public class MyClass  
{  
    public static void Main()  
    {  
        int i = 0;  
  
        switch (i)   // CS0163  
        {  
            // Compiler error CS0163 is reported on the following line.  
            case 1:  
                i++;  
            // To resolve the error, uncomment one of the following example statements.  
            // return;  
            // break;  
            // goto case 3;  
  
            case 2:  
                i++;  
                return;  
  
            case 3:  
                i = 0;  
                break;  

            default:  
                Console.WriteLine("Default");  
                break;  
        }  
    }  
}

Si noti che è corretto disporre di più cases per un'implementazione, come nel frammento di codice seguente:

public class MyClass
{
    public static void Main()
    {
        int i = 0;

        switch(i)
        {
            case 1:
            case 2:    // No CS0163
                i++
                break;

            default:
                break;
        }
    }
}