【发布时间】:2013-10-10 17:49:44
【问题描述】:
我已经定义了一个函数,其中一个参数是 out。在这里,当进行函数调用时,我传递了一个已初始化或未初始化的参数。 现在,在初始化参数的情况下,如何让被调用者不改变out参数的值?
我不能在这里使用 ref,因为有时我确实会发送未初始化的参数。 例如:
void fun1()
{
int x = 3;
fun2 (out x);
int y;
fun2(out y);
}
void fun2(out int x)
{
...
}
在这里,我不希望 x 失去值 3 一旦控制转到 fun2。
【问题讨论】:
-
如果你放一些代码来展示你在做什么,它会帮助我们想象如何帮助你。
-
有点难以理解您想要实现的目标。 “out”意味着初始化(和值)是被调用方法的责任。你要求的完全相反。
-
在上面的例子中,我只是想确保如果 out 参数在 fun2 调用之前已经在 fun1 中初始化,它应该保持该值不变,否则它可以初始化 fun2 中的参数。但是,既然已经出来了,fun2 必须给参数赋值,因为在第一次调用中,值 3 就丢失了。\
-
只是出于好奇,你知道 int 总是初始化为 0 吗?