Я нашел случай, когда у меня есть код, который, как я считаю, недоступен и не обнаружен. Предупреждение не выдаётся ни компилятором, ни Visual Studio.
Рассмотрим этот код:
enum Foo { A, B, C }
class Bar { public Foo type; }
static class Program
{
private static void Main()
{
var bar = new Bar { type = Foo.A };
if (bar.type == Foo.B)
{
Console.WriteLine("lol");
}
}
}
Очевидно, что программа не будет печатать "lol", потому что условие в выражении if ложно. Я не понимаю, почему предупреждение не выдано для недостижимого кода. Моя единственная гипотеза заключается в том, что это потенциально возможно достичь, если у вас есть условие гонки в многопоточной программе. Это правильно?