C# の invoke で戻り値を取得する方法

C#では、Invokeメソッドを使用してメソッドやデリゲートを呼び出し、その戻り値を取得できます。InvokeメソッドはDelegateクラスのメンバーであり、どのような種類のデリゲートに対しても呼び出すことができます。Invokeメソッドを使用して戻り値を取得する例を以下に示します。

using System;

public class Program
{
    public static void Main()
    {
        Func<int, int, int> add = Add;
        int result = (int)add.Invoke(3, 4);

        Console.WriteLine("Result: " + result);
    }

    public static int Add(int a, int b)
    {
        return a + b;
    }
}

上のサンプルではAddメソッドを定義し、2つの整数を引数として受け取り、その和を返します。また、Func<int, int, int>デリゲート型の変数addを定義し、Addメソッドを指します。次に、Invokeメソッドを使ってaddデリゲートを呼び出し、引数として3と4を渡します。最後に、返り値を整数型に変換し、コンソールに表示します。

なお、Invokeメソッドは、もう1つのDelegateクラスのメソッドであるDynamicInvokeメソッドでも代用できます。DynamicInvokeメソッドは、object型の配列のパラメーターを受け取り、任意の型のデリゲートを呼び出すことが可能です。DynamicInvokeメソッドを使った例は上記のものと同様で、InvokeをDynamicInvokeに置き換えるだけです。

bannerAds