CS0136 de erro do compilador

Mensagem de erro

Uma variável local denominada 'var' não pode ser declarada nesse escopo porque ele deve gerar um significado diferente para 'var', já é usado em um escopo 'corrente/filho ou pai' para denotar algo

Uma declaração de variável oculta outra declaração seria no escopo.Renomear a variável é declarada na linha que gerou CS0136.

Exemplo

O exemplo a seguir gera CS0136:

// CS0136.cs
namespace MyNamespace
{
   public class MyClass
   {
      public static void Main()
      {
         int i = 0;
         {
            char i = 'a';   // CS0136, hides int i
         }
         i++;
      }
   }
}

From a Especificação da linguagem C#Seção 7.5.2.1:

Para cada ocorrência de um determinado identificador sistema autônomo um nome de simples em uma expressão ou declarador dentro do espaço de declaração de variável local (§CNDJ6nn5us4RjIIAqgBLqQsCAAAACAAAAA4AAABfAFIAZQBmADQANgAxADYAMgAyADEAMwA4AAAA REF _Ref461622138 \r \h 3.3) envolve imediatamente dessa ocorrência, todas sistema autônomo outras ocorrências do mesmo identificador sistema autônomo um nome de simples em uma expressão ou declarador deve se referir a mesma entidade.Esta regra assegura que o significado de um nome é sempre o mesmo em um determinado bloco, bloco comutador, para, demonstrativo foreach ou usando ou função anônima.