2011-07-01 17 views
5

.NETとSilverlightの両方に新しいので、私はSilverlightのチュートリアル(Tim Heuersブログ、Silverlight TVなど)の多くがC#であることに気付きました。私は、VBとC#の一般的な違いは通常好みであることを知っています。Silverlight - C#とVB.netイベントハンドラのパフォーマンスに違いはありますか?

しかし私が気付いた主な違いの1つは、C#とVB.NETがイベントを処理する方法でした。これはちょうど構文上の違いですか、あるいはどちらか一方ですはイベントをよりうまく処理できますか?たとえば、両方とも同じ中間言語にコンパイルされますが、同じコードが生成されますか? Silverlightがこれに大いに依存しているのを見て、私はそれが考慮に値すると思った。

このフォーラムの専門知識を考慮すると、誰かがこれについての調査やパフォーマンステストを行っているのだろうかと思っていました。

+0

ハンドラが呼び出される方法に違いがあるかどうか尋ねていますか? – dbasnett

答えて

2

生成されるコードは命令と同一ではない場合がありますが、全体の効果は同じです。その領域でパフォーマンスの違いは見られません。 AddHandler、C#の+=、及びHandles、コンストラクタでAddHandlerためだけ糖衣構文である同じである -

VB.NETは、イベントのための2つの構文を有します。

+0

ありがとう、これは私が関心を持っていたものです.ILの結果がどのように同一であるかは分かりませんでした。 – ginman

+0

Handlesキーワードは、イベントハンドラをオブジェクトに追加する/前のオブジェクトから削除するプロパティセッターのコードを実際に作成します。 – rossisdead

2

これらはどちらもIL(またはこの場合はSilverlightバイトコード)にコンパイルされ、まったく同じように動作するはずです。違いは単なる構文的でなければなりません。

+0

いくつかの言語で利用できる言語機能があり、他の言語にはないものがあり、したがって同一のILを持たないことに注意してください。 C#のforeachやVB.NetのSelect Caseと同じです(それは主にスイッチですが、定数の代わりにそれぞれの場合の式が可能です)。 –

+0

@Corey C#のforeachについては何が特別でしょうか? –

+0

私はそれを調べた後、それを取り戻すこともありますが、VBにもそれがあります。私はある時点でC#とVBはしなかったと思う... –

関連する問題