c# -如何传递一个需要out变量的函数的引用?

本文关键字:变量 out 函数 引用 一个 何传递 | 更新日期: 2023-09-27 18:03:04

public class Foo
{
    public void DoFoo()
    {
       int x;
       var coll = TheFunc("bar", out x);
    }
    public Func<string, int, ICollection<string>> TheFunc { get; set; }
}

错误:"参数2不应与'out'关键字一起传递。"

public class Foo
{
    public void DoFoo()
    {
       int x;
       var coll = TheFunc("bar", out x);
    }
    public Func<string, out int, ICollection<string>> TheFunc { get; set; }
}

错误:"无效的方差修改符。只有接口和委托类型参数可以指定为变量。"

如何在此函数中获得out参数?

c# -如何传递一个需要out变量的函数的引用?

定义委托类型:

public delegate ICollection<string> FooDelegate(string a, out int b);
public class Foo
{
    public void DoFoo()
    {
       int x;
       var coll = TheFunc("bar", out x);
    }
    public FooDelegate TheFunc { get; set; }
}

你需要创建自己的委托:

delegate ICollection<string> MyFunc(string x, out int y);