Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 de 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 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++;
}
}
}
O compilador relata esse erro independentemente da ordem textual das declarações de variável, conforme mostrado no exemplo a seguir:
// CS0136.cs
namespace MyNamespace
{
public class MyClass
{
public static void Main()
{
if (true)
{
int i = 1; // CS0136, hides i outside this block
}
int i = 0;
i++;
}
}
}
Na Especificação da Linguagem C#:
É um erro que um espaço de declaração de variável local e um espaço aninhado de declaração de variável local contenham elementos com o mesmo nome. Portanto, dentro de um espaço de declaração aninhado, não é possível declarar uma variável local ou constante com o mesmo nome de uma variável local ou constante em um espaço de declaração envolvente. É 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.