代码之家  ›  专栏  ›  技术社区  ›  shubham srivastava

在C#[复制]中使用带有ref关键字的params

  •  0
  • shubham srivastava  · 技术社区  · 7 年前

    但我不知道有多少争论。

    我试过这样的方法,但不管用吗: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)

    0 回复  |  直到 9 年前
        1
  •  3
  •   Marc Gravell    9 年前

    不,那不可能。但是,你可以 许多的 通过改变方法中的数组,然后简单地从调用位置的数组中读取值:

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

    (可以简单地概括为仅在运行时已知的许多参数)

    推荐文章