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

2021年10月19日

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

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

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

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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();
}
}
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(); } }
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