Leer en inglés

Compartir a través de


Error del compilador CS0841

No se puede usar la variable 'name' antes de declararla.

Una variable debe declararse antes de su uso.

Ejemplo de una variable usada antes de la declaración

El ejemplo siguiente genera el error CS0841:

// cs0841.cs
using System;

public class Program
{
    public static void Main()
    {
        j = 5; // CS0841
        int j;
    }
}

Corrija el error moviendo la declaración antes del uso

Desplace la declaración de variable antes de la línea donde se produce el error.

using System;  

public class Program
{
    public static void Main()
    {
        int j;
        j = 5;
    }
}

Ejemplo de una variable que reemplaza un tipo

En el siguiente ejemplo, la intención era comparar parameter con MyEnum.A. Dado que hay una variable local declarada más adelante con el mismo nombre de tipo, reemplaza el tipo MyEnum; MyEnum en este método ya no hace referencia a enum, sino a la variable local declarada.

using System;

public enum MyEnum
{
    A, B, C
}

public class C
{
    public void M(MyEnum parameter)
    {
        // error CS0841: Cannot use local variable 'MyEnum' before it is declared
        if (parameter == MyEnum.A)
        {
            return;
        }

        // Change the variable to 'myEnum' to avoid shadowing the 'MyEnum' type.
        // This change also aligns with the C# coding conventions.
        var MyEnum = parameter;
        Console.WriteLine(MyEnum.ToString());
    }
}