更新:2007 年 11 月

错误消息

使用了未赋值的 out 参数“parameter”

编译器无法验证在使用 out 参数之前是否已给它赋值,它的值在赋值时可能未定义。在访问值之前,请确保初始化 out 参数。如果您需要使用传入的变量的值,请改用 ref 参数。有关更多信息,请参见传递参数(C# 编程指南)

示例

下面的示例生成 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);
    }
}

如果变量的初始化发生在 try 块中,则也会出现此错误,因为编译器无法验证 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);
    }
}