在 C# 中,为什么我不能在 out
中传递未分配的对象变量?参数然后赋值?
如果我尝试这样做,会出现编译器错误:“无法在此范围内声明局部变量 <xyz>
,因为它会给 <xyz>
赋予不同的含义 ...”
例如。
void MyMethod(int x, out MyObject mo) { **MyObject** mo = new MyObject(); }
// in some other scope:
MyObject mo;
MyMethod(1, out mo);
编辑:我现在可以看到我的错误了。我已将上面的代码更改为我的代码。 MyObject
星号不应该在那里。
最佳答案
你原来贴的代码是错误的,现在我们发现问题出在这里:
void MyMethod(int x, out MyObject mo)
{
MyObject mo = new MyObject();
// should be:
// mo = new MyObject();
}
您正在创建一个新的局部变量 mo
,它“隐藏”了参数 mo
。
很高兴我们最终到达了那里:-)
关于c# - 为什么我不能在 out 参数中传递一个未分配的对象变量然后分配它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3455133/