【发布时间】:2025-12-06 02:25:01
【问题描述】:
我有一个类,我在其中声明一个对象,但不初始化该对象。然后我将对象传递给另一个类中的方法进行初始化。我期望发生的是调用类中的对象现在将具有对初始化对象的引用,但它是空的。
这是我的意思的一个例子:
class MainClass
{
ObjectA foo;
OtherClass.InitializeObjectA(foo);
// why is foo null over here?
}
class OtherClass
{
public static void InitializeObjectA(ObjectA device)
{
device = new ObjectA();
}
}
我的问题是,当我在调用InitializeObjectA() 后尝试使用 foo 时,它仍然指向 null!如果我将 InitializeObjectA() 更改为 out ObjectA device 它可以工作。谁能解释为什么需要这样做?
【问题讨论】:
-
MSDN 关于按引用或按值传递:msdn.microsoft.com/en-us/library/s6938f28.aspx.
-
很好地理解传递值与传递值将真正帮助您! msdn.microsoft.com/en-us/library/0f66670z.aspx
-
因为 foo 还没有被实例化,因此没有引用传递,因此该方法无法将新的引用传递回来。