Beauty Salon α-BET (alphabet)

space001
Blender3d Collada dae modeling Use Papervision3d on Progression3 and 4 http://a-bet.secret.jp/#/access
more whaison works.
whaison space
space002
http://whaison.jugem.jp/ https://jp.pinterest.com/whaison/ https://www.instagram.com/whaison/ https://whaison.amebaownd.com/
https://suzuri.jp/whaison
http://whaison.blogspot.com/
http://whaison.tumblr.com/ http://qiita.com/users/whaison http://www.behance.net/whaison https://github.com/whaison/ https://bitbucket.org/whaison http://serato.com/user/whaison http://whaison.hatenablog.jp/

typo memo
http://d.hatena.ne.jp/whaison/


dayNote
http://www.myspace.com/whaison http://ameblo.jp/whaison/ http://blog.crooz.jp/whaison/ http://blog.crooz.jp/whaisoncafe/ http://nenpyo.org/whaison

fulldisk
http://full.shin-gen.jp/
http://whaison.client.jp/
http://www.dclog.jp/whaison/
featured forums.
space004
forum.unity3d.com/

forums.unrealengine.com.

Progression Forum.

FlashDevelop Forum.

Papervision3D Forum.

FlexUserGroup Forum.

SparkProjectForum.





Twitter







Mobile
qrcode
Calendar
SunMonTueWedThuFriSat
1234567
891011121314
15161718192021
22232425262728
293031    
<< December 2019 >>
New Entries
Archives
Categories
Recent comment
  • FlashDevelopでフォント埋め込み
    感謝!! (12/24)
  • cocos2d-x-3.0rc0 ,c++ ,cpp でTexturePacker で 吐き出した、plist と png でパラパラアニメーションのコード例
    whaison (04/17)
  • Blender2.67にbvh(web上に2500個以上ころがってる)入れてそのBoneオブジェクトをUnity4.0のmecanimで使う
    whaison (08/19)
  • Apple Dev Center 「Certificates, Identifiers & Profiles」で Adhoc をつくってXCode4.6.1でArchiveしてipaを書き出し
    whaison (04/30)
  • Flash CS6でプロパティーパネルで物理演算のジャンプの高さを設定できるCitrus Engine
    whaison (03/01)
  • 「Flash以外、例えばKinectとか」ON TOKYO (会場:高田馬場4-11-8 Floor 6階 ) 短縮URL http://bit.ly/dI0Bfx
    uka (03/02)
  • App Store Review Guidelines アップル社のアプリ審査基準ガイドライン和訳 Apple が 開発者を悩ませ ユーザーをハッピーにしたいガイドライン。w
    whaison (01/25)
  • Unity3d では ADOBE JAPAN OSAKIで行われたFITC 2010 TOKYOでは、 「iOS用にパブリッシュするためには、フリー版ではなくて、有料版を買ってください。さらに追加のパッケージである、"iOS Package (for Development)"を買ってください」とのことだった。
    whaison (01/25)
  • enjoy Adidas-Futsal-Park
    whaison (01/16)
  • MacBookAir にFlashPlayer入れたらなった。Mac Flash Player 10.1/10.2でUstream などでカメラが認識されないバグそんなときはUstreamProducer!でもなくiPhoneだと直ぐにライブ配信できた
    whaison (01/14)
simple sintax high lighter2.0
space003
SyntaxHighlighter2.0用 の貼り付けコード作成する!
ブログパーツ-BLOG PARTS.
Profile
Links
Recommend
Admin
無料ブログ作成サービス JUGEM
Seach this site
            
2014.11.20 Thursday
delegateは戻り値と引数の型 指定 つまり入力と出力の型だけを定義したものデリゲート
delegateとは戻り値と引数の型 指定
入力と出力の型だけを定義したデリゲート

C#では、次の宣言文によって「string型の引数と、int型の戻り値を持つデリゲート」を宣言する。
まずこれ
delegate int SomeDelegate(string p);

そして、次のようにデリゲート型オブジェクトを生成することができる。

なんとデリゲートの引数として指定したstringでなく関数を渡して
インスタンス化する。
そう入力と出力を定義したデリゲートには
必要なのは入力をどのように処理して出力するかという関数内容だからだ

SomeDelegate del = new SomeDelegate(SomeMethod);
int SomeMethod(string p) {
return 1;
});

SomeDelegate del = new SomeDelegate(delegate(string p) {
return 1;
});
前者の宣言では既存のSomeMethodメソッドをデリゲートの中身として指定しており、後者の宣言ではデリゲートの中身も同時に定義している(この書き方では、return文によって返される値がSomeDelegateデリゲートの戻り値に暗黙的に変換できない場合、エラーとなる)。

こうして生成したデリゲート型オブジェクトは、通常のメソッドのように直接実行することができる。

int ret = del("some string");


しかし、デリゲートの真価が発揮されるのはイベントと併用した時である。イベントは、次のように宣言する。
まずこれ
delegate int SomeDelegate(string p);
event SomeDelegate SomeEvent;
こうして宣言したイベントには、+= 演算子と -= 演算子によって、デリゲート(イベントハンドラ)を追加したり削除したりすることができる。

SomeEvent += new SomeDelegate(SomeEventHandler1);
SomeEvent -= new SomeDelegate(SomeEventHandler1);
イベントハンドラの追加が += 演算子によって行われることから推測できるように、1つのイベントには複数のイベントハンドラを登録することができる。

次のようにしてイベントを起こすと、登録したイベントハンドラがまとめて実行される。

if (SomeEvent != null)
SomeEvent("some string");

てゆーか
実際はイベントハンドラ自体が
デリゲートを必要としていて

サンプルはこうなる

 まず、初めてのイベントとして、できるだけ小さく書いたサンプル・プログラムを見てみよう

using System;

namespace ConsoleApplication53
{
戻り値のなしの引数object型のsender, EventArgs型の eデリゲート
public delegate void SampleEventHandler(object sender, EventArgs e);
class Class1
{
public event SampleEventHandler sampleEvent;
public void handler( object o, EventArgs e )
{
Console.WriteLine("handler called");
}
static void Main(string[] args)
{
Class1 target = new Class1();
target.sampleEvent += new SampleEventHandler(target.handler);
target.sampleEvent( target, EventArgs.Empty );
}
}
}
イベントを使用した小さなサンプル・プログラム1
このプログラムには注目すべき点が5つある。
 これを実行すると以下のようになる。
出力:handler called

サンプル・プログラム1の実行結果
最終的には、イベントのハンドラであるhandlerメソッドが呼び出され、メッセージが表示される。

参考
http://ja.m.wikipedia.org/wiki/デリゲート_(プログラミング)


http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_013/csharp_abc01.html










delegate int mygate(string str)
デリゲートの図
入力引数型

中身なし関数いれるハコ

出力返り値型
int func(string str1)
{
Debag.Log(str1)
}
中身なし関数いれるハコにfuncいれる
mygate+=func("デリゲート")

| whaison | Unity3d | 00:20 | comments(0) | - | pookmark |
Comment




whaisonStudyNoteBook をFaceBookで いいね!





Share |