1. デリゲートとは
同じ型の引数を返す関数を格納できる変数のようなもの
2. デリゲートを使ってみる
次の処理を記述します
-
void型でstring型の引数を1つ持つデリケートを定義する
(これと同じ引数、戻り値を持つ関数はオブジェクトとして扱うことができる) -
デリケートにMethodメソッドを代入
引数として受け取った文字列をそのまま返す -
デリケートにMethod2メソッドを代入
引数として受け取った文字列を2つつなげて返す -
デリケートを呼出
デリケートに追加した処理が実行される
test.cs
// デリゲートの宣言
public delegate void Func(string)
static void Main(string[] args)
{
string hoge = "hoge";
Func func = Method; // Methodメソッドをデリゲートに代入
func += Method2; // Method2メソッドをデリゲートに代入
func(hoge); // デリゲートを呼び出す(Method,Method2が呼ばれる)
}
// Methodメソッド
private static void Method(string hoge)
{
console.WriteLine(hoge);
}
// Method2メソッド
private static void Method(string hoge)
{
console.WriteLine(hoge + hoge);
}
実行結果
>> hoge
>> hogehoge