Ler em inglês

Compartilhar via


Erro do Compilador CS0136

Uma variável local chamada "var" não pode ser declarada nesse escopo porque daria um significado diferente para "var", que já é usado em um escopo "pai ou atual/filho" para indicar outra coisa

Uma declaração variável oculta outra declaração que, de outra forma, estaria no escopo. Renomeie a variável declarada na linha que gerou CS0136.

Exemplo

O seguinte exemplo gera o erro CS0136:

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

Da Especificação da Linguagem C#:

É um erro que um espaço de declaração de variável local e um espaço de declaração de variável local aninhado contenham elementos com o mesmo nome. Portanto, dentro do espaço de uma declaração aninhada, não é possível declarar uma variável local ou constante com o mesmo nome que uma variável local ou constante em um espaço de declaração fechado. É possível que dois espaços de declaração contenham elementos com o mesmo nome, desde que nenhum espaço de declaração contenha o outro.