タグ

デリゲートに関するlocke-009のブックマーク (5)

  • とても雑にC#のデリゲート超入門&再入門 - Qiita

    ▼ ついでに後編(?)もあります。イベントとデリゲートの違いなどなど。 何度も分かった気分になって実は全然分かっていないデリゲートについてメモ。 幼児でもわかるデリゲート概要 とても雑にデリゲートとは? メソッドの処理が書いてある "場所"を 覚えてくれて、そのメソッドを 呼び出せる 仕組み を持った クラスだよ。特別扱いされて クラスとは別の機構として 存在するよ。 ①実行したいメソッドが メモリ上のどこにあるかを デリゲートに覚えさせておいて ②実行したくなった時に そのデリゲートを呼び出すと ③デリゲートが そのメソッドを 実行してくれるよ。 とても雑にデリゲートの何が便利? メソッドを 変数のように扱えるから、あるメソッドを 別のメソッドに 引数で渡したりして 後から 好きなタイミングで 実行してもらえるよ。 C#では、1つのデリゲートに 複数のメソッドを 紐づけられるから、デリゲ

    とても雑にC#のデリゲート超入門&再入門 - Qiita
  • delegates-basic.php

    C# のデリゲートとは? ボタンクリックなどのイベント処理では実行時に、システムがイベントを検出したときに、ユーザー定義のメソッドを呼び出して実行する必要があります。 通常はユーザー側のコードが API を呼び出すのに対して、システムがユーザーのコードを呼び出していることになります。こうした呼び出しを「コールバック」という言い方をします。 当然ながら、システム (フレームワーク) 側には,ユーザー定義のコードがあらかじめ埋め込まれているわけではありません。それにも関わらず、システムはユーザーのコードをコールバックすることができます。 なぜ、ユーザー定義の関数をシステム側からコールバックすることができるのでしょうか。 C# では、これから説明する「デリゲート」を利用することで、コールバックを実現することができます。 平たく言えば、デリゲートは関数のプレースホルダのようなものと考えることができ

    delegates-basic.php
  • 【C#】デリゲートとは?実はとっても簡単な話。 | ファンタジー好きのゲ制ブログ

    普通のint型変数xの宣言ですよね。 何か変数を宣言するときは、 型名 変数名; とすれば良い訳ですね。 「何を当たり前の事を」と思われたかもしれませんが、 それでは「変数を宣言」ではなく「メソッドを宣言」するにはどうしたら良いでしょうか(ここで言う宣言とは、実装を伴わないプロトタイプ宣言のことを指します)。 変数宣言は「型名 変数名」と書きましたので、同じように 型名 メソッド名; と書けば良さそうです。 …しかし、メソッドを表す型ってなんでしょうか? 変数を表す型なら簡単です。 変数が整数ならint型ですし、浮動小数点ならfloat型やdouble型ですよね。 実は「メソッドを表す型」がパッと浮かばないのは、それが無数に存在するからです。 では、具体例を挙げてみましょう。 ・void型を引数に取り、void型を返すメソッド ・int型を引数に取り、int型を返すメソッド ・float型

    【C#】デリゲートとは?実はとっても簡単な話。 | ファンタジー好きのゲ制ブログ
  • C# デリゲートについて - Qiita

    tl;dr(まとめ) C#のデリゲートは、 引数として関数を1つ受けとるデータ型(参照型) の一種です。 C#には他にもnewキーワードで生成するデータ型としてクラス、構造体があります。 C#のデリゲートは、+, - 演算子を持ち、一つのデリゲート変数に複数のデリゲートを登録することが出来、 マルチキャスト と呼ばれる機能を持ちます。 (これが、C#のデリゲートの特筆すべき機能だと思います。) 書いたこと デリゲートの宣言 デリゲートの生成と実行 newキーワドによる生成 匿名メソッドによる生成 ラムダ式による生成 デリゲートの+-演算 (マルチキャスト) デリゲートの宣言

    C# デリゲートについて - Qiita
  • デリゲート(delegate)ってなんだろう? - give IT a try

    C#のデリゲートがよくわからんという同僚さんのために、なんかいいサンプルコードを書きたいと思ったんですが、なかなか難しいですねえ。 分かりやすくて、なおかつ実用的なサンプルが思いつかないです。 おいらの中では「デリゲート = メソッド(処理)をあたかも変数のようにして使いまわせるモノ」みたいな感じの理解です。(かなり適当・・・) たとえば、スクリプト系の言語だと何でも実行時に解決しちゃうんで、デリゲートなんてものが必要ありません。 JavaScript(というかJScript)で書くとこんな感じです。 main(); function main() { var methodContainer = []; methodContainer.push(sayHelloInEnglish); methodContainer.push(sayHelloInJapanese); for (var i

    デリゲート(delegate)ってなんだろう? - give IT a try
  • 1