是否可以使用 params 关键字通过 ref 传递对象?
Is it possible to pass objects by ref with the params keyword?
我想通过 ref 向方法 传递很多参数,但我不知道参数的数量。
我试过类似的方法,但它不起作用吗:D:
public void myMethod(ref params object args)
我会考虑在参数中传递指针,但在 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)
不,那不可能。但是,您可以通过改变方法中的数组来获得 很多 相同的结果,然后只需在调用站点从数组中读回值:
var args = new[] {x, y, z}
obj.myMethod(args);
x = args[0];
y = args[1];
z = args[2];
(可以简单地概括为一些仅在运行时已知的参数)
我想通过 ref 向方法 传递很多参数,但我不知道参数的数量。
我试过类似的方法,但它不起作用吗:D:
public void myMethod(ref params object args)
我会考虑在参数中传递指针,但在 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)
不,那不可能。但是,您可以通过改变方法中的数组来获得 很多 相同的结果,然后只需在调用站点从数组中读回值:
var args = new[] {x, y, z}
obj.myMethod(args);
x = args[0];
y = args[1];
z = args[2];
(可以简单地概括为一些仅在运行时已知的参数)