【问题标题】:Calling a method with ref or out parameters from an anonymous method [duplicate]从匿名方法调用带有 ref 或 out 参数的方法[重复]
【发布时间】:2009-06-16 13:26:29
【问题描述】:

这个问题与one I asked the other day 有关,我从中得到了一些很好的有用答案。

我需要以通用方式调用具有不同签名的各种 Web 方法。我希望能够将 web 方法传递给具有委托参数的方法,但我不确定如何处理不同的签名。解决方案是使用 lambdas(或我目前使用 C#2 的匿名方法)。

在我需要我的匿名方法来调用不带参数的 Web 方法之前,这很有效。由于explained here 的原因,您不能这样做。

所以我的问题是,除了创建一个没有 ref 或 out 参数的包装器方法来从我的匿名方法调用之外,还有更简单的方法来完成此操作吗?

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    实际上,您可以使用refout——只是不能直接与调用方法的参数一起使用;但是,您可以在调用之前和之后复制值:

    static void Foo(ref string s, out int i)
    {
        string tmpS = s;
        int tmpI = 0; // for definite assignment
        DoIt(delegate { Bar(ref tmpS, out tmpI); });
        s = tmpS;
        i = tmpI;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      • 2011-08-29
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多