CSharp/デリゲート
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(CSharp/デリゲート);
*目次 [#cb610ac3]
#contents
*参考情報 [#v4d48cbe]
-[[../イベント]]
-[[デリゲート (C# によるプログラミング入門):http://ufcpp....
*デリゲートとは [#h8a316c4]
-関数ポインタのようなもの。
-ただしデリゲート変数には複数のメソッドを登録できる(マル...
*簡単なデリゲート [#fb6b9f99]
**delegateの宣言 [#e95fd78f]
- delegate 戻り値の型 名前(引数)のように宣言する
#pre{{
delegate int SimpleDelegete(string message)
}}
**delegateの生成と呼び出し [#p89cc8ca]
- 一番簡単なdelegateのインスタンスを生成して直接メソッド...
#pre{{
delegate void SpeakDelegate(string message);
private void Speak(string message)
{
Debug.WriteLine(message);
}
private void StarSpeak(string message)
{
Debug.WriteLine("★" + message);
}
private void simple_Clicked(object sender, Routed...
{
//古式ゆかしい書き方
SpeakDelegate s = new SpeakDelegate(Speak);
s("Hello World");
//C#2.0からはメソッドからdelegateへ暗黙の変換...
SpeakDelegate s2 = Speak;
s2("Hello World2");
//マルチキャストデリゲートと呼ばれる(SpeakとS...
SpeakDelegate s3 = Speak;
s3 += StarSpeak;
s3("Hello World3");
}
}}
- 出力結果
#pre{{
Hello World
Hello World2
Hello World3
★Hello World3
}}
*Tips [#xdca0895]
**SpeakDelegate s = new SpeakDelegate(Speak)とSpeakDelega...
-[[デリゲート (C# によるプログラミング入門):http://ufcpp....
-わざわざnewする必要はなさそうだがコードを読むためには両...
**Delegateの比較 [#nc565f7f]
-イベントなどにdelegateを追加・削除する場合、何をもって等...
-[[Delegate.Equality 演算子 (System):http://msdn.microsof...
--同じクラスの静的メソッドである場合等しい。
--同じオブジェクトのインスタンスメソッドである場合等しい。
--それ以外は異なる。
-[[c# - Remove duplicate delegate from event - Stack Over...
終了行:
&tag(CSharp/デリゲート);
*目次 [#cb610ac3]
#contents
*参考情報 [#v4d48cbe]
-[[../イベント]]
-[[デリゲート (C# によるプログラミング入門):http://ufcpp....
*デリゲートとは [#h8a316c4]
-関数ポインタのようなもの。
-ただしデリゲート変数には複数のメソッドを登録できる(マル...
*簡単なデリゲート [#fb6b9f99]
**delegateの宣言 [#e95fd78f]
- delegate 戻り値の型 名前(引数)のように宣言する
#pre{{
delegate int SimpleDelegete(string message)
}}
**delegateの生成と呼び出し [#p89cc8ca]
- 一番簡単なdelegateのインスタンスを生成して直接メソッド...
#pre{{
delegate void SpeakDelegate(string message);
private void Speak(string message)
{
Debug.WriteLine(message);
}
private void StarSpeak(string message)
{
Debug.WriteLine("★" + message);
}
private void simple_Clicked(object sender, Routed...
{
//古式ゆかしい書き方
SpeakDelegate s = new SpeakDelegate(Speak);
s("Hello World");
//C#2.0からはメソッドからdelegateへ暗黙の変換...
SpeakDelegate s2 = Speak;
s2("Hello World2");
//マルチキャストデリゲートと呼ばれる(SpeakとS...
SpeakDelegate s3 = Speak;
s3 += StarSpeak;
s3("Hello World3");
}
}}
- 出力結果
#pre{{
Hello World
Hello World2
Hello World3
★Hello World3
}}
*Tips [#xdca0895]
**SpeakDelegate s = new SpeakDelegate(Speak)とSpeakDelega...
-[[デリゲート (C# によるプログラミング入門):http://ufcpp....
-わざわざnewする必要はなさそうだがコードを読むためには両...
**Delegateの比較 [#nc565f7f]
-イベントなどにdelegateを追加・削除する場合、何をもって等...
-[[Delegate.Equality 演算子 (System):http://msdn.microsof...
--同じクラスの静的メソッドである場合等しい。
--同じオブジェクトのインスタンスメソッドである場合等しい。
--それ以外は異なる。
-[[c# - Remove duplicate delegate from event - Stack Over...
ページ名: