Error del compilador CS0269

Actualización: noviembre 2007

Mensaje de error

Uso del parámetro out sin asignar 'parámetro'
Use of unassigned out parameter 'parameter'

El compilador no pudo comprobar que el parámetro out se hubiera asignado a un valor antes de utilizarlo; es posible que su valor no estuviera definido al asignarlo. Asegúrese de inicializar los parámetros out antes de tener acceso a sus valores. Si necesita utilizar el valor de la variable que se ha pasado, utilice un parámetro ref en su lugar. Para obtener más información, vea Pasar parámetros (Guía de programación de C#).

Ejemplo

El código siguiente genera el error CS0269:

// CS0269.cs
class C
{
    public static void F(out int i)
    // Try this instead:
    // public static void F(ref int i)
    {
        int k = i;  // CS0269
        i = 1;
    }

    public static void Main()
    {
        int myInt;
        F(out myInt);
    }
}

También se puede producir si la inicialización de una variable tiene lugar en un bloque try y el compilador no puede comprobar si éste se ejecutará de forma correcta:

// CS0269b.cs
class C
{
    public static void F(out int i)
    {
        try
        {
            // Assignment occurs, but compiler can't verify it
            i = 1;
        }
        catch
        {
        }

        int k = i;  // CS0269
        i = 1;
    }

    public static void Main()
    {
        int myInt;
        F(out myInt);
    }
}