C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でデリゲートを使って数学演算を呼び出す方法を解説

C#では、デリゲート(delegate)を活用することで、メソッドを引数として渡し、柔軟に数学演算を呼び出すことができます。本記事では、数値の除算を例に、デリゲートを使った数学演算の呼び出し方を具体的なコードとともに解説します。

1. 演算用クラスとメソッドの定義

まず、演算処理を行うクラスとその中のメソッドを定義します。ここでは、受け取った値を5で割るDivideFuncメソッドを作成します。

public class Demo {
    public static double DivideFunc(double value) {
        return value / 5;
    }
}

このメソッドはdouble型の値を受け取り、5で割った結果を返します。staticメソッドとして定義しているため、インスタンス化せずに直接呼び出せる点がポイントです。

2. デリゲートの宣言

次に、メソッドのシグネチャ(戻り値の型と引数)に一致するデリゲートを宣言します。

delegate double myDelegate(double x);

このデリゲートは「double型の引数を1つ受け取り、double型の値を返す」メソッドを参照できます。先ほど定義したDivideFuncはまさにこのシグネチャに一致しています。

3. 値を設定してデリゲート経由で呼び出す

デリゲート型の配列を作成し、そこにDemo.DivideFuncメソッドへの参照を格納します。その後、配列の要素を通じてメソッドを呼び出します。

myDelegate[] val = { Demo.DivideFunc };

result(val[0], 20);

ここでは配列を使っていますが、単一のデリゲート変数でも同様に動作します。複数の演算メソッドをまとめて管理したい場合に、配列形式が便利です。

4. 結果を出力するメソッド

デリゲートを引数として受け取り、実際に数学演算を実行して結果を表示するメソッドは以下の通りです。

static void result(myDelegate d, double value) {
    double result = d(value);
    Console.WriteLine("Result = {0}", result);
}

d(value)の部分で、デリゲートが参照しているメソッド(この場合はDivideFunc)が実行されます。これにより、呼び出し側は具体的な演算内容を知らなくても、デリゲートを介して任意の処理を実行できるのです。

実行結果

上記のコードを実行すると、「value / 5」すなわち 20 ÷ 5 の計算結果が表示されます。

Result = 4

まとめ

デリゲートを使用すると、メソッド自体をデータのように扱えるため、演算ロジックの差し替えや拡張が容易になります。例えば、MultiplyFuncAddFuncなど同じシグネチャを持つ別の演算メソッドを追加すれば、resultメソッドを変更することなく様々な数学演算を呼び出せます。これはコールバック処理やイベント駆動プログラミングの基礎となる重要な概念ですので、ぜひマスターしておきましょう。

  1. Swiftを使ってiOS 10アプリから電話をかける方法【ステップ解説】

    この記事では、Swiftを使用してiOSアプリからプログラムによって電話をかける方法を、手順を追ってわかりやすく解説します。それでは早速始めましょう。 Step 1:プロジェクトの作成 Xcodeを開き、「File」→「New」→「Project」を選択して「Single View Application」テンプレートで新規プロジェクトを作成します。プロジェクト名は「MakeCall」としましょう。 Step 2:UI部品の配置 「Main.storyboard」を開き、下の画像のようにテキストフィールド(UITextField)とボタン(UIButton)を1つずつ画面上に配置します。 S

  2. Androidでインテントを使用して電話をかける方法【サンプルコード付き】

    この記事では、Androidアプリからインテント(Intent)を使用して電話をかける方法を解説します。ACTION_DIALアクションを利用することで、端末のダイヤラー画面を起動し、指定した電話番号を自動入力した状態で表示できます。 ステップ1:新規プロジェクトの作成 Android Studioを開き、「File」→「New Project」を選択して新しいプロジェクトを作成します。必要な項目をすべて入力し、プロジェクトのセットアップを完了させましょう。 ステップ2:レイアウトファイルの編集 res/layout/activity_main.xmlに以下のコードを追加します。ここでは、タッ