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

Outlook ExpressからOutlookへ移行する

今回紹介するのは、OutlookExpressから同じ端末に入れたOutlookへの移行方法です。 OutlookExpressのデータをエクスポートして、別端末のOutlookにインポートするのは面 …

windows

コマンドプロンプト(バッチ)でファイル毎の処理をする

forでファイル毎の処理をする コマンドプロンプトのforには強力な/Fオプションがあります。 set yyyy=%date:~0,4% set mm=%date:~5,2% set dd=%date …

windows

連続していないパーティションの変更

Windows8を使用しています。 コンピューターの管理>ディスクの管理を使うと、 簡単にパーティションサイズの変更ができます。 しかしここで落とし穴がありました。 連続していないパーティションは結合 …

windows

Windows XPでシンボリックリンクを使用する(linkd)

vistaでは使用できますが、XPではデフォルトでは使用できません。 Microsoftからrktools.exeをダウンロードしてインストールしましょう。 ダウンロード インストールした後に、コマン …

windows

Windowsの時刻の同期間隔を変更する

Windowsでは時刻の同期間隔がデフォルトでは7日です。 通常のPCだったらいいのですが、 サーバーであったり、内部にNTPサーバーがあれば1時間毎ぐらいにはしたいと思います。 そこで下記レジストリ …