Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
No se puede declarar una variable local llamada "var" en este ámbito porque le daría un significado diferente a "var", que ya se utiliza en un ámbito "padre, actual o hijo" para representar otra cosa.
Una declaración de variable oculta otra declaración que, de lo contrario, estaría en el ámbito. Cambie el nombre de la variable declarada en la línea que generó CS0136.
Ejemplo
El siguiente ejemplo genera CS0136:
// CS0136.cs
namespace MyNamespace
{
public class MyClass
{
public static void Main()
{
int i = 0;
{
char i = 'a'; // CS0136, hides int i
}
i++;
}
}
}
El compilador notifica este error independientemente del orden textual de las declaraciones de variable, como se muestra en el ejemplo siguiente:
// 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++;
}
}
}
En la especificación del lenguaje C#:
Es un error que un espacio de declaración de variable local y un espacio de declaración anidado de la misma variable contengan elementos con el mismo nombre. Por lo tanto, dentro de un espacio de declaración anidado no es posible declarar una variable local o constante con el mismo nombre que una variable local o constante en un espacio de declaración envolvente. Es posible que dos espacios de declaración contengan elementos con el mismo nombre siempre y cuando ninguno de los espacios de declaración contenga el otro.