保持从'out'参数传入的值

时间:2013-09-10 17:14:12

标签: c# .net collections out

我们在一天中在企业调度程序的循环中运行程序。调度程序需要一个整数返回值,所以我们必须编写程序以自然地返回它。但是,我们希望保留一些信息的运行记录,因此我需要以某种方式传递一个集合对象,保留它的值,将新计数添加到对象,然后将新总计传递回调用它的程序。

我使用out关键字相对较新,所以我甚至可能没有走正确的道路。现在我被告知我需要在我可以使用它之前分配对集合对象的控制权,但是当它被传入时它将会消除它包含的任何计数。有没有办法使用out来保持价值观还是应该使用其他方法?

2 个答案:

答案 0 :(得分:4)

out参数在传入时不会在逻辑上拥有任何值。实际上,您可以使用甚至没有明确赋值的变量:

int x; // No logical value yet
Foo(out x);

听起来你可能想要ref - 虽然我个人试图避免使用ref out,而是希望返回我的所有结果尽可能使用返回值的方法。

有关refout的更多信息,请参阅我的article on parameter passing

答案 1 :(得分:3)

集合对象(如List<T>)是引用类型,因此如果您希望方法能够更改{{1}的内容,则甚至不需要使用out关键字你传入的