未分類

C# デリゲートを扱う (4)

準備

(なし)

デザイン

1. フォーム (Form1) にボタン (button1) を配置します。
2. フォーム (Form1) にリストボックス (listBox1) を配置します。

サンプルコード (C#)

// 名前空間の追加
// (なし)

// デリゲートの宣言
delegate int TestDelegate(int v1, int v2);

// コード
private void button1_Click(object sender, EventArgs e)
{
  TestDelegate td;
  td = CalcAdd;
  td += CalcSub;
  listBox1.Items.Add(td(2, 3));
}

private int CalcAdd(int v1, int v2)
{
  return v1 + v2;
}

private int CalcSub(int v1, int v2)
{
  return v1 - v2;
}

解説

デリゲート型変数に 2 つのメソッドを代入しています。今回の場合は最初に実行される CalcAdd メソッドの結果は消えてしまいます。つまり、デリゲート型変数に最後に代入したメソッドの実行結果が最終的に残ります。

結果

動作確認環境

Visual Studio 2015 Professional (C# 6.0)

-未分類