Нет. "Переменная назначается, но никогда не используется".

У меня есть следующий код на С#, я использую VS 2012, и все мои предупреждения рассматриваются как ошибки (хотя это, вероятно, не имеет большого значения).

private static readonly int MAX_RADIUS_KM = 16;

private void Test() {
    int i = 2 * MAX_RADIUS_KM;
    int i2 = 2;
}

"Переменная [x] назначается, но ее значение никогда не используется" отображается для i2, но не для i. Зачем? Это ошибка или что-то происходит за кулисами? Я был бы удивлен последним, но если да, то что происходит, что делает i, чтобы избежать этого предупреждения?

В приведенном ниже примере также отсутствует отказ от предупреждения о неиспользованном i:

private void Test(int foo) {
    int i = 2 * foo;
    int i2 = 2;
}

И еще (i2 в этом случае):

private void Test()
{
  int i = 2 * 3;
  int i2 = i;
}