为什么这样做:
Object bar;
Foo(bar);
在 C# 中我得到一个
Use of unassigned local variable 'bar'
错误?
我该如何解决?
为什么这样做:
Object bar;
Foo(bar);
在 C# 中我得到一个
Use of unassigned local variable 'bar'
错误?
我该如何解决?
如错误消息所述,如何在使用变量之前为其赋值。
如果您将变量传递给一个方法,您可能想看看使用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
}
}
分配一些东西给酒吧。
Object bar = new Object();
或将其分配为 null
Object bar = null;
您的变量“bar”尚未实例化,因此无法使用。只需将其设置为 null,C# 将允许您使用它。C# 这样做是为了在变量可以使用之前强制对其进行初始化。真的,这只是一种很好的编程习惯。
Object bar = null;
您需要在使用变量之前对其进行初始化:
Object bar = null;
将其初始化为null
与未初始化相同,但将使其可用。如果您想要一个实际的值/类实例,请尝试:
Object bar = new Object();
为其赋值:
Object bar = new Object();
或者
Object bar = null;
使用前赋值。null 将适用于对象。默认适用于任何类型。
Object bar = default (Object)
最初,您必须分配null
给bar
Object bar = null;