Compartilhar via


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.