他の開発者がUIイベントに応答する以外のデリゲートやイベントをどのように使用しているか、私は興味がありますか?私は、個人的には、UIイベントに応答する以外には使用しませんが、私はデリゲートやイベントの力を逃しているという強い感情を持っています。だから、私はSOコミュニティにこの質問を投げかけて、どうやってこれらのツールを私の兵器に加えることができるかについてのアイデアを得るかもしれない。どのようにUI以外のデリゲートやイベントを使用しますか?
答えて
イベントはかなり平凡です。ほとんどの場合、UIに応答して、または状態の変化についてユーザーに通知する必要があるコンポーネントを開発するときに、それらを使用します。ヤーン
しかし、参加者はすごくお得になります。おそらく最も一般的な使用法はLinqです。 Linqは場所のいたるところにラムダを使用しています。これは省略表現です。
var numbers = new int[]{1,2,3,4,5};
var evenStevens = numbers.Where(x => x % 2 == 0);
もう一つの一般的な用途はマルチスレッドである:私は私が一番好きなこと、それらを使用しました
ThreadPool.QueueUserWorkItem(o => DoWork(o));
はミックスが分離コードでHTMLをレンダリングするのHtmlHelperの拡張メソッドである:
/// <summary>
/// Helps render a simple list of items with alternating row styles
/// </summary>
/// <typeparam name="T">The type of each data item</typeparam>
/// <param name="html">The HtmlHelper.</param>
/// <param name="rows">The list of items</param>
/// <param name="rowTemplate">The row template.</param>
/// <param name="evenCssClass">The even row CSS class.</param>
/// <param name="oddCssClass">The odd row CSS class.</param>
public static void SimpleList<T>(
this HtmlHelper html,
IEnumerable<T> rows,
Action<T, string> rowTemplate,
string evenCssClass,
string oddCssClass)
{
var even = false;
foreach (var row in rows)
{
rowTemplate(row, even ? evenCssClass : oddCssClass);
even = !even;
}
}
aspxファイルでのその使用例:
<div id="nodes" class="scrollingBlock">>
<% Html.SimpleList(
Model.Nodes,
(d, css) =>
{%>
<div class='<%=css%>'><%=d.Name %></div>
<%}, "evenRow", "oddRow");%>
</div>
いつでも表示される可能性のあるイベントをリスンしている場合は、非同期にソケットをリッスンしたり、XMLファイルを読み込んだりするときなどに使用することができます。
イベントは、設定できるあらゆる種類のステートマシンに最適です。各状態の変更ごとに異なるイベントを発生させ、プログラムがそれらの変更に反応できるようにします。
イベントのもう1つの用途は、新しいレコードが解析されたり、長期実行タスクからダウンロードされたときに通知することです。たとえば、大きなXMLファイルをダウンロードし、そこからレコードをパースするコントローラオブジェクトがあるとします。そのコントローラーがファイルから新しいレコードを正常に解析するたびにイベントを発生させることがあります。
長時間実行しているアプリケーションの現在の状態について、制御クラスに通知するイベントを使用しました。
私のケースでは、Windows CEデバイスを新しいファームウェアでアップデートしていましたが、最大15分かかることがあったので、コントローラが回線が更新されたときに通知して、イベント。
前述のように、別のスレッドで何が起こっているのかを知る必要がある場合、特に操作にかなりの時間がかかる場合は、イベントが役立ちます。
- 1. イベントとデリゲート。どのようなデザインパターン?
- 2. ui-gridイベントはどのように無効にしますか?
- 3. デリゲートのためのjQueryイベント以外のクリック
- 4. Visual Studioのテストプロジェクトは、イベントやデリゲートに対処できますか?
- 5. winformのメソッドは、どのようにApp_Codeのイベント/デリゲートをリッスンし、nullイベントを取得しませんか?
- 6. backbone.jsプレーンな「変更」イベント以外のすべてのイベントをどのように捕捉できますか?
- 7. モカ以外にチャイとどのようなテストフレームワークを使用できますか?
- 8. イベントハンドラ以外の変数はどのように使用できますか?
- 9. 野外活動やアクティビティでのEL表現のドットやダッシュはどのように使用しますか?
- 10. SFSpeechRecognitionTaskのデリゲートをどのように設定しますか?
- 11. .NETのメインUIスレッド以外のスレッドでUIを実行するにはどうすればよいですか?
- 12. どのようにtarを使用し、特定のファイル以外のすべてを抽出しますか?
- 13. (メッセージポンプを使用して)uiスレッドでデリゲートを実行します。
- 14. デバッグ中にToString以外のデリゲートを使用してオブジェクトの値を表示するにはどうすればよいですか?
- 15. clangのuint24_tはどのように機能しますか? clang/LLVM以外でも使用できますか?
- 16. どのようにCancelEventArgsのようなイベントを使用できますか?
- 17. Backbone.jsビューを使用してイベントにどのようにバインドしますか?
- 18. どのように正確にJavaScriptのDOMイベントを使用しますか?
- 19. イベントでデリゲートを使用する
- 20. S3やAzure BlobのようなCloudstorageの使用にはどのようなデザインパターンを使用しますか?
- 21. 文字や数字、スペース以外のものとはどのように一致しますか?
- 22. jquery-ui-draggableはposition:relativeの使用をどのように許可しますか?
- 23. デリゲートとコールバックはどのように機能しますか?
- 24. デリゲートを使用してバックグラウンドタスクからUIを更新する
- 25. ポイントセット処理にどのようにCGAL Point_3以外のクラスを使用しますか?
- 26. デリゲートとイベントの使用方法は?
- 27. C#3のデリゲートとイベントから、どのような新機能を利用できますか?
- 28. Clojureプログラムをプログラマー以外の人にどのように配布しますか?
- 29. HTML5以外のブラウザにどのようにアップデートをプッシュしますか?
- 30. 無効なオブジェクトのmousedown/clickイベントをどのように使用しますか?