-2

为什么这样做:

Object bar;
Foo(bar);

在 C# 中我得到一个

Use of unassigned local variable 'bar'

错误?

我该如何解决?

4

7 回答 7

2

如错误消息所述,如何在使用变量之前为其赋值。

如果您将变量传递给一个方法,您可能想看看使用out 关键字

out 关键字导致参数通过引用传递。这类似于 ref 关键字,只是 ref 要求在传递变量之前对其进行初始化。要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。

从链接中,您可以看到如果您希望传递给方法并期望在此之后初始化变量,如何使用该变量。

class OutExample
{
    static void Method(out int i)
    {
        i = 44;
    }
    static void Main()
    {
        int value;
        Method(out value);
        // value is now 44
    }
}
于 2012-11-01T04:27:32.603 回答
1

分配一些东西给酒吧。

Object bar = new Object();

或将其分配为 null

Object bar = null;
于 2012-11-01T04:26:58.923 回答
1

您的变量“bar”尚未实例化,因此无法使用。只需将其设置为 null,C# 将允许您使用它。C# 这样做是为了在变量可以使用之前强制对其进行初始化。真的,这只是一种很好的编程习惯。

Object bar = null;
于 2012-11-01T04:29:02.977 回答
0

您需要在使用变量之前对其进行初始化:

Object bar = null;

将其初始化为null与未初始化相同,但将使其可用。如果您想要一个实际的值/类实例,请尝试:

Object bar = new Object();
于 2012-11-01T04:27:05.097 回答
0

为其赋值:

Object bar = new Object();

或者

Object bar = null;
于 2012-11-01T04:27:45.747 回答
0

使用前赋值。null 将适用于对象。默认适用于任何类型。

Object bar = default (Object)
于 2012-11-01T04:28:42.897 回答
0

最初,您必须分配nullbar

Object bar = null;
于 2012-11-01T05:20:40.187 回答