5
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 パラメータを取得するにはどうすればよいですか?

4

2 に答える 2

8

デリゲート タイプを定義します。

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; }
}
于 2011-07-22T20:21:01.053 に答える
7

独自のデリゲートを作成する必要があります。

delegate ICollection<string> MyFunc(string x, out int y);
于 2011-07-22T20:20:25.190 に答える