猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

VisualStudio Windows

c# デリゲート(delegate)とは

投稿日:2013年9月21日 更新日:

デリゲートの説明としてよく
処理の委譲とか関数ポインタとかでてきますが、
cはさわりしか知らないので、なかなか理解できませんでした。

結局のところ
デリゲートを使用すると
関数を引数に利用できる!
という点に尽きるのではないでしょうか。

下記はデリゲートの使用例です。
ただし、このサンプルではデリゲートを利用する意味はありませんのでご注意ください・・・

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace test
{

    public partial class Form1 : Form
    {
        private delegate String DelegateFunc(String msg);

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            DelegateFunc df = new DelegateFunc(DelegateMethod);
            Console.WriteLine(df("hello"));
            Console.WriteLine(TestMethod(df));
        }


        private String DelegateMethod(String msg)
        {
            return DateTime.Now.ToString("HH:mm:ss") + " " + msg;
        }

        private String TestMethod(DelegateFunc df)
        {
            return df("good day");
        }

    }
}

Gooleアドセンス用336

Gooleアドセンス用336

-VisualStudio, Windows
-,

執筆者:

関連記事

windows

pingのTTLでOSを判別する

pingのTTLを見ると、簡単なOSの判別が可能です。 これは私のPC(Windows)と、そのPC上で起動させているCentOS(linux)へそれぞれpingを打った時のものです。 TTLが128 …

windows

Windowsのrouteに設定するインターフェイスのindex番号の確認方法

routeを追加する windowsでルートを登録するのは 宛先:192.168.2.10/255.255.255.0 Gateway:129.168.0.254 インターフェイス:0x001 の場合 …

Windows8.1のIE11でYahooニュースが読み込めない!?

Windowsをアップデートしたところ、 Yahooニュースを開くたびに、更新ボタンを押さないと読み込めなくなってしまいました。 インターネットオプションの詳細設定で、 拡張保護モードのチェックを外す …

windows

Excelで完了にした行をグレーにする

課題管理表などをエクセルで作成することは多いと思います。 でもいつも完了した行をグレーアウトする方法を忘れるのでメモしておきます。 ポイントは条件付き書式を使うということと、その設定方法です。 IND …

windows

Windowsのライセンス認証でこのプロダクトキーは既に使用されていますと表示される

自作PCでマザーボードを交換しました。 OSはvistaです。 するとコンピューター>プロパティ のライセンス認証をしようとすると、 『このプロダクトキーは既に使用されています』 と表示されて認証でき …