「C#」デリゲート(delegate)をポリモフィズム的に使用するサンプル

2021年10月19日

書式

delegate 戻り値の型 delegate名称(引数);
public 戻り値の型 メソッド名(delegate名称 変数名,引数) {
        変数名(引数);
 }

使用例

using System;

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

// SampleAクラスの定義
public class SampleA
{
    //メソッドFunAの定義
    public  void FunA(string strA, string strB)
    {
        Console.WriteLine(strA + strB +" become smart");
    }
}
// SampleBクラスの定義
public class SampleB
{
    //メソッドFunAの定義
    public  void FunA(string strA, string strB)
    {
        Console.WriteLine(strA + strB + " 勉強練習");
    }
}
class Arkgame
{
    //引数のデータ型はdelegate
    public static void FunTest(deleA cft,string strA,string strB) {
        cft(strA, strB);
    }
    
    public static void Main()
    {

        SampleA sa = new SampleA();
        SampleB sb = new SampleB();

        //SampleAクラスのメソッドを指定
        FunTest(sa.FunA, "study", " skill");

        //SampleBクラスのメソッドを指定
        FunTest(sb.FunA, "C#", "スキル");

        Console.ReadKey();
    }
}

実行結果
study skill become smart
C#スキル 勉強練習

C#

Posted by arkgame