编译器警告(等级 2)CS0162

检测到无法访问的代码

编译器检测到永远不执行的代码。

示例

下面的示例生成 CS0162:

// CS0162.cs
// compile with: /W:2
public class Program
{
    public static void Main()
    {
        goto lab1;
        {
            // The following statements cannot be reached:
            int i = 9;   // CS0162
            i++;
        }
    lab1:
        {
        }
    }
}

生成此错误的另一个常见示例如下所示:

public static class Class1
{
    public static string Method1()
    {
        string x = "a";
        switch (x)
        {
            case "a":
                return "a";
                break;          // CS0162
        }
        return "";
    }
}

无法到达 break 语句,因为它出现在 return 语句之后。 return 语句结束封闭 case 分支。