В вашем случае компилятор не будет фильтровать оператор if, потому что ваш anyFlag общедоступен (так что его можно изменить из нескольких мест) и поскольку значение установлено только в конструкторе, компилятор также теперь не имеет этого значениядо времени выполнения.
Следующий код делает то, что вы хотите:
static void MyFunc()
{
const bool flag = true;
string s = null;
if (flag)
{
s = "a";
}
else
{
s = "b";
}
}
Если вы вставите этот код в Visual Studio, вы увидите сгенерированное предупреждение о том, что s = "b";никогда не будет достигнут, и этот код будет оптимизирован.