2012-07-30 39 views
8

Có sự khác biệt nào ở đây không?Có sự khác biệt nào giữa 2 cách xóa trình xử lý sự kiện này không?

Button1.Click -= new EventHandler(Button1_Click); 

Button1.Click -= Button1_Click; 

Phương pháp thứ hai dường như không làm việc cho tôi, nhưng tôi đã nhìn thấy nó được sử dụng khi Google-ing 'làm thế nào để loại bỏ một trình xử lý sự kiện'. Chỉnh sửa: Thực tế là không hoạt động cho tôi, ngay cả như vậy nên hoặc là làm việc thay thế cho nhau?

Cập nhật:

Lý do những đã không xuất hiện để làm việc đối với tôi là vì tôi đã có AutoPostBack = true trên điều khiển của tôi. Tôi đã không thiết lập các điểm ngắt để xem các sự kiện đã được gọi hay chưa, tôi vừa xem trình duyệt để xem nó có làm mới hay không (nghĩa là sau lưng).

+0

@MarkByers Không thực sự, tôi đã cập nhật câu hỏi của mình để hiển thị điều này. Rất sắc sảo của bạn! – Dean

+0

Âm thanh như chữ ký 'Button1_Click' có thể sai. Mã có hoạt động để thêm chúng không? – Enigmativity

+0

@Enigmativity Tôi đã thêm các trình xử lý sự kiện vào đánh dấu ở mặt trước của trang aspx để không có vấn đề gì ở đó. Tôi đã cập nhật câu hỏi của mình để giải thích sai lầm mà tôi đã thực hiện khi giả định mã này không hoạt động khi nó là thứ gì đó khác. – Dean

Trả lời

8

Hai đoạn mã đó giống nhau. Cú pháp thứ hai (được gọi là "chuyển đổi nhóm phương thức") là một tính năng mới được thêm vào trong C# 2.0.

+4

Tôi nghĩ rằng điều đầu tiên là loại bỏ lỡ. Nó không cảm thấy như tôi loại bỏ hiện tại. Có thể là rất nhiều người mới bắt đầu thấy rằng khó chịu. – dowhilefor

+0

@dowhilefor Tôi không thực sự coi bản thân mình là người mới bắt đầu nữa mà vẫn thực sự không thích cú pháp đầu tiên. Loại bỏ một tham chiếu đến một đối tượng từ một danh sách vì tôi cố gắng loại bỏ một đối tượng khác có giá trị tương tự vẫn có vẻ giống như một hack. – Yaur

+0

@Yaur xin lỗi tôi đã không ngụ ý rằng bạn là một người mới bắt đầu, nó chỉ là một đoán rằng nó có thể gây khó chịu cho những người khác học ngôn ngữ. Nhưng tôi đồng ý, tôi không nghĩ rằng nó rõ ràng cho bất cứ ai. Thành thật mà nói, tôi đã phải tìm kiếm những gì chính xác xảy ra ở đó một vài tháng trước, bởi vì tôi không chắc chắn nữa. – dowhilefor

0

Chức năng, không. Không có sự khác biệt giữa hai người. Đối với vấn đề của bạn về không làm việc, nếu đây là một ứng dụng ASP.NET, bạn có thể muốn vô hiệu hóa sự kiện tự động wireup trong trang aspx.

Các vấn đề liên quan