是否可以使用params关键字通过ref传递对象?

时间:2016-10-03 08:07:16

标签: c# reference parameter-passing params ref

我想通过ref 将一些参数传递给方法,但我不知道参数的数量。

我尝试过类似的东西,但它不起作用:D:

public void myMethod(ref params object args)

我会考虑在params中传递指针,但它在C#:/

中有点复杂

可能的解决方法?

编辑:

我想封装一部分代码,基本上是这样的:

...

var collectionA = new List<string>();
var myObject = // an object
Optimizer.Optimize(ref collectionA, ref myObject); // cache
//{

MaClass.Treatment(); // use collectionA stored in cache via Optimizer

// the collectionA is modified in MaClass.Treatment()
...

//}
Optimizer.EndOptimize();
...

目标,如果调用封装到我的优化器中,则无法一直请求我的服务器进行相同的处理(HTTPRequest)

1 个答案:

答案 0 :(得分:2)

不,那是不可能的。但是,通过改变方法中的数组,然后只需在调用站点读取数组中的值,就可以得到很多

var args = new[] {x, y, z}
obj.myMethod(args);
x = args[0];
y = args[1];
z = args[2];

(可以简单地推广到仅在运行时知道的许多参数)