2008-09-23 30 views
6

Sự khác biệt giữa điều này:Sự khác biệt giữa Sự kiện với Người xử lý ủy quyền và những người không có gì?

this.btnOk.Click += new System.EventHandler(this.btnOK_Click); 

và điều này?

this.btnOk.Click += this.btnOK_Click; 

Cả hai đều hoạt động. Trước đây là những gì Visual Studio mặc định khi bạn sử dụng các đoạn mã. Nhưng nó có vẻ như nó chỉ quảng cáo thêm verbiage, hoặc tôi thiếu một cái gì đó?

+0

bản sao có thể có của [Trình xử lý sự kiện C#] (http://stackoverflow.com/questions/26877/c-sharp-event-handlers) – nawfal

Trả lời

10

Không có sự khác biệt. Bỏ qua instantate delegate chỉ là cú pháp kẹo; trình biên dịch C# sẽ tạo ra các instantate ủy nhiệm cho bạn dưới mui xe.

1

Tôi tin rằng C# kể từ 3.0 đã ngầm thêm trình xử lý ủy nhiệm. Tuy nhiên, nó có thể giúp rõ ràng hơn, đặc biệt là khi có nhiều loại ủy nhiệm có thể.

1

"+ = Delegate_Name" là đường cú pháp. Trình biên dịch sẽ tạo trình bao bọc mới cho bạn.

4

Trong C# 3.0 và sau đó điều này không có sự khác biệt. Trước khi C# 3.0 EventHandlers được yêu cầu do giới hạn của trình biên dịch, nhưng với sự ra đời của C# 3.0, biểu mẫu thứ hai được ưu tiên trừ khi bạn muốn rất rõ ràng.

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