タグ付けされた質問 「delegates」

デリゲートはいくつかの概念を参照できます。オブジェクトは、別の(デリゲート)に依存して機能を実行できます。委任は、自己呼び出しをディスパッチするためのメソッド検索ルールを利用してプログラミング言語機能を参照することもできます。C#では、デリゲートは、イベントがトリガーされたときに呼び出すメソッドを定義します。



12
C#を使用してメソッドをパラメーターとして渡す
同じシグネチャ(パラメータと戻り値)を持つすべてのメソッドがいくつかありますが、メソッドの名前と内部は異なります。実行するメソッドの名前を、渡されたメソッドを呼び出す別のメソッドに渡したいのですが。 public int Method1(string) { ... do something return myInt; } public int Method2(string) { ... do something different return myInt; } public bool RunTheMethod([Method Name passed in here] myMethodName) { ... do stuff int i = myMethodName("My String"); ... do more stuff return true; } public bool Test() { …
694 c#  .net  methods  delegates 

6
「純粋な」Swiftで弱いプロトコル参照を作成するにはどうすればよいですか(@objcなし)
weakprotocolがとして宣言されていない限り、参照はSwiftで機能しないよう@objcです。これは、純粋なSwiftアプリでは不要です。 このコードはコンパイルエラーを発生させます(weak非クラスタイプには適用できませんMyClassDelegate): class MyClass { weak var delegate: MyClassDelegate? } protocol MyClassDelegate { } プロトコルの前にを付ける必要があります@objc。そうすると機能します。 質問:を実現する「純粋な」Swiftの方法はweak delegate何ですか?


11
C#で匿名メソッドをサブスクライブ解除する
匿名メソッドをイベントから退会させることは可能ですか? 私がこのようなイベントを購読すると: void MyMethod() { Console.WriteLine("I did it!"); } MyEvent += MyMethod; 私はこのように退会することができます: MyEvent -= MyMethod; しかし、匿名メソッドを使用してサブスクライブした場合: MyEvent += delegate(){Console.WriteLine("I did it!");}; この匿名メソッドの登録を解除することは可能ですか?もしそうなら、どのように?



4
なぜObjective-Cのデリゲートは通常、保持ではなくプロパティの割り当てを与えられるのですか?
私はスコットスティーブンソンによって管理されている素晴らしいブログをサーフィンしていて、代理人に「割り当て」プロパティと「保持」を割り当てるという基本的なObjective-Cの概念を理解しようとしています。ガベージコレクションされた環境では、どちらも同じであることに注意してください。私は主に非GCベースの環境(例:iPhone)に関心があります。 スコットのブログから直接: 「assignキーワードは、値をコピーまたは保持するのではなく、インスタンス変数に直接値を割り当てるセッターを生成します。これは、NSIntegerやCGFloatなどのプリミティブ型、またはデリゲートなどの直接所有していないオブジェクトに最適です。」 デリゲートオブジェクトを直接所有していないとはどういう意味ですか?私は通常、デリゲートを保持します。なぜなら、彼らが奈落の底に逃げたくない場合は、保持がそれを処理してくれるからです。私は通常、UITableViewControllerをそれぞれのdataSourceおよびデリゲートから分離して抽象化します。その特定のオブジェクトも保持します。UITableViewには常にデリゲートがあるので、それが消えないようにしたいと思います。 誰かがどこで/なぜ私が間違っているのかさらに説明できるので、Objective-C 2.0プログラミングで、保持の代わりにデリゲートで割り当てプロパティを使用するこの一般的なパラダイムを理解できますか? ありがとう!

4
View Controller間で通信するための最良の方法は何ですか?
一般的に、objective-c、cocoa、iPhone devの初心者なので、言語とフレームワークを最大限に活用したいという強い思いがあります。 私が使用しているリソースの1つは、スタンフォード大学のCS193Pクラスのメモで、Web上に残したものです。講義ノート、課題、サンプルコードが含まれており、コースはApple開発者によって提供されたので、間違いなく「馬の口から」であると考えています。 クラスのウェブサイト:http : //www.stanford.edu/class/cs193p/cgi-bin/index.php レクチャー08は、UINavigationControllerスタックにプッシュされた複数のUIViewControllersを持つUINavigationControllerベースのアプリを構築する割り当てに関連しています。これがUINavigationControllerの仕組みです。それは論理的です。ただし、スライドには、UIViewControllers間の通信に関する厳しい警告がいくつかあります。 この深刻なスライドから引用します。http: //cs193p.stanford.edu/downloads/08-NavigationTabBarControllers.pdf ページ16/51: データを共有しない方法 グローバル変数またはシングルトン これにはアプリケーションデリゲートが含まれます 直接的な依存関係により、コードの再利用性が低下します そして、デバッグとテストがより難しい OK。私はそれに落ち込んでいます。ビューコントローラーとアプリデリゲートの間の通信に使用されるすべてのメソッドを盲目的に放り投げたり、アプリデリゲートメソッドでビューコントローラーインスタンスを参照したりしないでください。フェアナフ。 少し先に、このスライドで何をすべきかを説明します。 ページ18/51: データフローのベストプラクティス 把握を正確に伝達する必要があるもの ビューコントローラーの入力パラメーターを定義する 階層を遡って通信するには、疎結合を使用します オブザーバー(委任など)の汎用インターフェースを定義する 次に、このスライドの後にプレースホルダースライドのように見えるスライドが続きます。ここで、講師はUIImagePickerControllerの例を使用してベストプラクティスを明らかに示します。ビデオが利用可能になればいいのに!:( はい、そうです...私のobjc-fuはそれほど強くありません。上記の引用の最後の行にも少し混乱しています。私はこれについてグーグルの私の公平な分け前をしていて、観察/通知技術のさまざまな方法について話しているまともな記事であると思われるものが見つかりました:http : //cocoawithlove.com/2008/06/five-approaches-to -listening-observing.html メソッド#5はデリゲートをメソッドとしても示します!例外...オブジェクトは一度に1つのデリゲートしか設定できません。それで、複数のビューコントローラー通信がある場合、どうすればよいですか? OK、それはセットアップのギャングです。アプリデリゲート内の複数のビューコントローラーインスタンスを参照することで、アプリデリゲートで通信メソッドを簡単に実行できることはわかっていますが、このようなことを正しい方法で実行したいと考えています。 次の質問に答えて、「正しいこと」をしてください。 UINavigationControllerスタックに新しいビューコントローラーをプッシュしようとすると、このプッシュを実行する必要があります。 私のコードのどのクラス/ファイルが正しい場所ですか? 別の UIViewControllerにいるときに、UIViewControllersの1つにあるデータ(iVarの値)に影響を与えたい場合、これを行う「正しい」方法は何ですか? オブジェクトに一度に設定できるデリゲートは1つだけで、講師が「オブザーバー(デリゲートのような)の汎用インターフェイスを定義する」と言ったときの実装はどのようになると想定してください。可能であれば、疑似コードの例が非常に役立ちます。

13
デリゲートとは何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 この質問を改善する デリゲートの実際の役割は何ですか? 私はインタビューで何度もこの質問をされてきましたが、インタビュアーが私の答えに満足したとは思いません。 誰かが私に最良の定義を一文で実用的な例を挙げて教えてもらえますか?
152 oop  delegates 


11
Javaの関数ポインター
これは一般的で些細なことかもしれませんが、具体的な答えを見つけるのに苦労しているようです。C#にはデリゲートの概念があり、これはC ++からの関数ポインターの概念に強く関連しています。Javaに同様の機能はありますか?ポインタがいくらか欠けていることを考えると、これについての最良の方法は何ですか?明確にするために、ここではファーストクラスについて話します。

6
C ++デリゲートとは何ですか?
C ++でのデリゲートの一般的な考え方は何ですか?それらは何ですか、どのように使用され、何に使用されますか? 最初に「ブラックボックス」の方法でそれらについて学びたいのですが、これらのことの根本についての少しの情報も素晴らしいでしょう。 これは最も純粋またはクリーンなC ++ではありませんが、私が作業しているコードベースには豊富に含まれています。それらを十分に理解したいと思っているので、それらを使用するだけで、ネストされた恐ろしいひどいテンプレートを掘り下げる必要はありません。 これらの2つのコードプロジェクトの記事は、私が何を意味するかを説明していますが、特に簡潔には説明していません。 メンバー関数ポインターと最速のC ++デリゲート 信じられないほど高速なC ++デリゲート

10
C#でイベントサブスクリプションをクリアするにはどうすればよいですか?
次のC#クラスを取り上げます。 c1 { event EventHandler someEvent; } c1のsomeEventイベントへのサブスクリプションがたくさんあり、それらをすべてクリアしたい場合、これを達成するための最良の方法は何ですか?また、このイベントのサブスクリプションは、ラムダ/匿名のデリゲートである可能性があることも考慮してください。 現在の解決策は、nullに設定するResetSubscriptions()メソッドを追加することです。これが目に見えない結果をもたらすかどうかはわかりません。c1someEvent
141 c#  .net  events  delegates 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.