「C#」デリゲートに複数のメソッドを登録(削除)するサンプル

2021年10月19日

書式
1.デリゲートの定義
delegate 戻り値の型 delegate名称 (引数)

2.複数のメソッドを登録
delegate名 引数 = new delegate名(クラス名.メソッド名);
引数 += new delegate名(クラス名.メソッド名);

3.複数のメソッドを削除
引数 -= new delegate名(クラス名.メソッド名);

使用例

using System;

// デリゲートを定義 string型引数2つ
delegate void deleA(string strA, string strB);

// Sampleクラスの定義
class Sample
{
    //メソッドFunAの定義
    public static void FunA(string strA, string strB)
    {
        Console.WriteLine(strA + strB +" become smart");
    }

    //メソッドFunBの定義
    public static void FunB(string strA, string strB)
    {
        Console.WriteLine(strA + strB + " in arkgame");
    }
}
class Arkgame
{
    public static void Main()
    {
        deleA de = new deleA(Sample.FunA); 
        //複数のメソッドを登録
        de += new deleA(Sample.FunB);
        Console.WriteLine("2つのメソッドをデリゲートに登録する"); 
        de("study"," skill ");


        de -= new deleA(Sample.FunB);
        Console.WriteLine("\n1つのメソッドをデリゲートに登録する");
        de("study", " skill ");

        Console.ReadKey();
    }
}

実行結果
2つのメソッドをデリゲートに登録する
study skill become smart
study skill in arkgame

1つのメソッドをデリゲートに登録する
study skill become smart

C#

Posted by arkgame