The question is a bit unclear, but I'll take a picture.
First, Adam's answer is correct, because there is a difference in IL that the compiler emits based on whether the "optimization" switch is on or off. The compiler is much more aggressive in removing unreachable code with an optimization switch.
. -, de jure; , # . -, - ; , # , . , , , , , , .
unreachable de jure, de facto , .
:
int x = 123;
int y = 0;
if (false) Console.WriteLine(1);
if (x * 0 != 0) Console.WriteLine(2);
if (x * y != 0) Console.WriteLine(3);
Console.WriteLines . - ; # , .
-, - , - . , .
, (2), (3). , , , , , .
(3) , y, , y . , , , .
: , , , :
int z;
if (false) z = 123;
Console.WriteLine(z);
if (false) Console.WriteLine(z);
, z . , ; z , , !
# 2 , . # 2 :
int x = 123;
int z;
if (x * 0 != 0) Console.WriteLine(z);
, de jure Console.WriteLine . # 3.0, .
, ; - .