CS0135 de erro do compilador
Mensagem de erro
'declaration1' está em conflito com a declaração 'declaration2'
O compilador não permite ocultar nomes, que geralmente leva a erros de lógica em seu código.
Exemplo
O exemplo a seguir gera CS0135:
// CS0135.cs
public class MyClass2
{
public static int i = 0;
public static void Main()
{
{
int i = 4;
i++;
}
i = 0; // CS0135
}
}
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.