我们在一天中在企业调度程序的循环中运行程序。调度程序需要一个整数返回值,所以我们必须编写程序以自然地返回它。但是,我们希望保留一些信息的运行记录,因此我需要以某种方式传递一个集合对象,保留它的值,将新计数添加到对象,然后将新总计传递回调用它的程序。
我使用out
关键字相对较新,所以我甚至可能没有走正确的道路。现在我被告知我需要在我可以使用它之前分配对集合对象的控制权,但是当它被传入时它将会消除它包含的任何计数。有没有办法使用out
来保持价值观还是应该使用其他方法?
答案 0 :(得分:4)
out
参数在传入时不会在逻辑上拥有任何值。实际上,您可以使用甚至没有明确赋值的变量:
int x; // No logical value yet
Foo(out x);
听起来你可能想要ref
- 虽然我个人试图避免使用ref
或 out
,而是希望返回我的所有结果尽可能使用返回值的方法。
有关ref
和out
的更多信息,请参阅我的article on parameter passing。
答案 1 :(得分:3)
集合对象(如List<T>
)是引用类型,因此如果您希望方法能够更改{{1}的内容,则甚至不需要使用out
关键字你传入的