2012-07-30 9 views
8

ここに違いはありますか?イベントハンドラを削除する2つの方法に違いはありますか?

Button1.Click -= new EventHandler(Button1_Click); 

Button1.Click -= Button1_Click; 

第二の方法

は私のために動作するようには思えないが、私はそれがどのようにイベントハンドラを削除するには「Googleの-INGの際に使用さ見てきました。 編集:実際にはどちらも私のために働いていません。でも、 のどちらかを入れ替えてもいいですか?

アップデート:私は私のコントロールのAutoPostBackを= trueを持っていたので、これらは私のために働くようには見えなかった

理由があります。イベントが呼び出されたかどうかを確認するためにブレークポイントを設定していなかったので、ブラウザがリフレッシュされているかどうか(ポストバックを意味する)を確認しました。

+0

@MarkByers実際には、私はこれを表示するために私の質問を更新しました。非常にあなたの気晴らし! – Dean

+0

'Button1_Click'署名のような音が間違っている可能性があります。コードはそれらを追加するために機能しましたか? – Enigmativity

+0

@Enigmativity私はaspxページのフロントエンドのマークアップにイベントハンドラを追加しましたので、問題はありませんでした。私はこのコードが何か他のときにはうまくいかなかったと仮定して、間違いを説明する質問を更新しました。 – Dean

答えて

8

これら2つのコードは同じです。 2番目の構文(「メソッドグループ変換」と呼ばれる)は、C#2.0で追加された新機能でした。

+4

私は最初の1つがミスリーディングであると思います。それは私が既存のものを削除するように感じることはありません。おそらく初心者の多くは、その刺激を見つける。 – dowhilefor

+0

@dowhilefor私は本当に自分自身を初心者とは思っていませんが、最初の構文はまだ嫌です。同じ値を持つ別のオブジェクトを削除しようとしたため、リストからオブジェクトへの参照を削除することは、ハックのように見えます。 – Yaur

+0

@Yaur申し訳ありませんが、私はあなたが初心者であることを暗示していませんでした。それは、言語を学ぶ他の人々に刺激を与えるかもしれないとの推測でした。しかし、私は同意する、私は誰のために明らかだとは思わない。正直言って、私はもはやよく分からなかったので、数ヶ月前にちょうどそこで何が起こるかを調べなければならなかった。 – dowhilefor

0

機能的に、両者には違いはありません。両方とも動作していないという問題に関しては、これがASP.NETアプリケーションの場合は、aspxページで自動イベントワイヤを無効にすることができます。

関連する問題