Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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;
}
}
}