Поделиться через


Ошибка компилятора CS0163

Управление не может "проваливаться" из одной метки case ('label') в другую

Если оператор switch содержит более одного раздела переключения, необходимо явно завершить все разделы, включая последний, используя одно из следующих ключевых слов:

Если необходимо реализовать поведение "проваливания" из одного раздела в следующий, используйте выражение goto case #.

Следующий пример приводит к возникновению ошибки 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;  
                return;  
  
            // Compiler error CS0163 is reported on the following line.  
            default:  
                Console.WriteLine("Default");  
                // To resolve the error, uncomment the following line:  
            //break;  
        }  
    }