Поделиться через


Ошибка компилятора CS0269

Использование выходного параметра "parameter", которому не присвоено значение

Компилятору не удалось проверить, присвоено ли выходному параметру значение до его использования; значение параметра может быть не определено при присвоении. Прежде чем обратиться к значению параметров out, его необходимо присвоить в вызываемом методе. Если необходимо использовать значение переданной переменной, используйте параметр ref. Дополнительные сведения см. в разделе "Параметры метода".

Пример 1

Следующий пример приводит к возникновению ошибки CS0269:

// CS0269.cs  
class C  
{  
    public static void F(out int i)  
    // One way to resolve the error is to use a ref parameter instead  
    // of an out parameter.  
    //public static void F(ref int i)  
    {  
        // The following line causes a compiler error because no value  
        // has been assigned to i.  
        int k = i;  // CS0269  
        i = 1;  
        // The error does not occur if the order of the two previous
        // lines is reversed.  
    }  
  
    public static void Main()  
    {  
        int myInt = 1;  
        F(out myInt);  
        // If the declaration of method F is changed to require a ref  
        // parameter, ref must be specified in the call as well.  
        //F(ref myInt);  
    }  
}  

Пример 2

Эта ошибка также возникает, если инициализация переменной выполняется в блоке "try", в котором компилятор не может проверить присвоение:

// 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);  
    }  
}