私の友人は主にVB開発者であり、VBでのイベントをC#よりもコード化するのがどれほど簡単かと言われています。私の問題は、おそらくもっと簡単だが、複雑さが増す理由がなければ、おそらくC#で単純なものにしていただろう。 VB.Netのイベントではなく、C#イベントで行うことができる柔軟性や能力があれば教えてください。VBイベントではできないC#イベントで何かできることはありますか?
答えて
C#には匿名関数を使用してvoidを返すイベント(事実上すべてのイベント)を購読する機能しかありません。 VB.Net 9.0は値を返すラムダ式のみをサポートしています(これはVB 10.0で修正されています)。
VBイベント
- Relaxed Delegatesのサポートに関して、C位に存在しない柔軟性のビットを有しています。これにより、VBはイベントタイプのパラメータのサブセットのみを必要とするイベントハンドラを使用することができます(ほとんど空のパラメータ関数で使用されます)
- Handles句を使用すると、C# RaiseEventのキーワードはVB.Netでヌルイベントのチェック、問題は存在しないになり
- ファイル.Designer.csて掘る あなたの友人は、おそらくからの制御やイベントを選択することで、イベントハンドラを作成するために使用される
戻り値の型のイベントを作成できないようです。私の投稿の助けをいただければ幸いです。http://stackoverflow.com/questions/2624886/vb-equivalent-of-c-event-creation – Steven
私はVBからC#のほうが好きですが、私はどちらもかなり流暢です。
私の頭の上には、VB.Netがどこにあるのかわかりやすい2つの場所があります。 1つは、イベントを呼び出す前にnull
を確認する必要がないということです。
もう1つは、Handles
キーワードを追加したものです。イベントを処理し、それを1つのイベントに配線する完全な方法を宣言することができますこれはVBでの明確な利点です。なぜなら、そのキーワードがなくても、すべてのことを長い形式で行うことができるからです。これは単なる文法的な砂糖です。 。
構文の残りの部分はかなり洗浄である:?VBを使用すると、「+=
」または「AddHandler
」を好むん
私はあなたが言及しているトレードオフは、あなたがイベント既にイベントハンドラが添付されています。 –
、あなたではなく、署名を意味することはできませんデリゲート型を宣言するよりも?私はそれは良いことですが、よく分からない
Public Event OnChange(ByVal Text As String)
...
も - ないRaiseEvent
ハンドルヌル(非加入イベント)に自動的にいますか?もちろん、やりやすい。
+1です。欠点は、コンパイラが毎回新しいデリゲート型を舞台裏で作ることです(私は信じています)。 – MarkJ
ソースコードページの上に2つのコンボボックスがあります。 C#の場合と同様に+ =ハンドラを手動でコーディングします。
C#では、仮想イベントを作成し、派生クラスでそれらをオーバーライドすることができます。 VB.NETにはこのようなことはありません。
- 1. jQueryイベントでjavascriptイベントをラップすることはできますか?
- 2. Silverlight DataTemplateでイベントをバインドすることはできますか?
- 3. ユーザーコントロールでイベントを作成することはできますか?
- 4. 私は扱うことができるキャンバスオブジェクトのイベントは何ですか?
- 5. asp.net ExpressionBuilder:イベントを配線することはできますか?
- 6. イベントを生成できるオブジェクトの用語は何ですか?
- 7. jsイベントとDOMイベントの違いは何ですか?
- 8. onFocusイベントとonMouseEnterイベントの違いは何ですか?
- 9. webrole onStart()イベントとApplication_Start()global.asaxイベントの違いは何ですか?
- 10. Cocos2dのccTouchesCancelledイベントとccTouchesEndedイベントの違いは何ですか?
- 11. 'mouseup'イベントと 'click'イベントの違いは何ですか?
- 12. Android:なぜイベントは投稿できないのですか?
- 13. ここではどのイベントを使うべきですか?
- 14. エンドユーザーがJavaScriptを使用してイベントをトリガーできないようにすることはできますか?
- 15. jqueryがフックできる最も早いイベントと最新のイベントは何ですか?
- 16. 「MySQLイベント」とは何ですか?
- 17. oncontentreadyイベントとは何ですか?
- 18. 同じTextviewでイベントをドラッグしてクリックすることはできますか?
- 19. あなたは春にはできないことは何ですか?
- 20. PivotItemでMouseClickイベントまたはGotFocusイベントをどのように見つけることができますか?
- 21. C#WindowsフォームでMouseWheelイベントを発生させることはできません
- 22. はjavascriptで、onCreateなどのイベントはありますか?
- 23. UIButtonイベント。違いは何ですか?
- 24. カスタムアクセサのイベントは、デフォルトのイベントと同じように直接起動できないのはなぜですか?
- 25. なぜこのJavascriptはAjaxイベントを引き起こさないのですか?
- 26. テキストボックスのonChangeイベントでID名を渡すことはできますか?
- 27. &で置き換えることはできますか? C++で
- 28. ObservableCollectionプロパティのNotifyChangedをCollectionChangedイベント経由で行うことはできますか?
- 29. onBlurイベントでTextBoxの日付チェックを行うことはできますか?
- 30. clickイベントをmouseoutと組み合わせることはできますか?
あなたは宗教的な議論のようですね;)私はVB.NetとC#の間のいくつかの違いに遭遇しました。ほとんどのことを1つの方法で行うことができます。 –
私はこれに慣れていない他の人からこれを聞いたことがあります。誰がこの噂を始めたのだろうか。 –
私は_everything_とは言いませんが、確かにそのギャップはあなたが思うほど大きくはありません。 –