Tôi biết đây là lứa tuổi sau khi bài nhưng nghĩ thêm nhận xét với mã để giải thích Dustin Campbell câu trả lời vì nếu ai đó đi qua chủ đề này. Tôi đã xem qua bài đăng này trong khi cố gắng quyết định điều gì sẽ là phương pháp hay nhất và đây là ý nghĩa của câu trả lời.
Tạo riêng sự kiện tùy chỉnh xử lý lớp học của bạn
public class myCustomeEventArgs:EventArgs
{
public bool DoOverride { get; set; }
public string Variable1 { get; private set; }
public string Variable2{ get; private set; }
public myCustomeEventArgs(string variable1 , string variable2)
{
DoOverride = false;
Variable1 = variable1 ;
Variables = variable2 ;
}
}
Vì vậy, khi bạn tạo đại biểu sự kiện của bạn, bạn sử dụng args sự kiện tạo của bạn như thế này.
public delegate void myCustomeEventHandler(object sender, myCustomeEventArgs e);
Và trong lớp nâng cao sự kiện bạn khai báo sự kiện.
public event myCustomeEventHandler myCustomeEvent;
Vì vậy, khi bạn kích hoạt sự kiện trong lớp của bạn, lớp học lắng nghe sự kiện bạn có thể chỉ trong phần sự kiện được đặt e.DoOverride = true; vì nó sẽ được tuyên bố trong lớp kích hoạt sự kiện.
cháy sự kiện ví dụ:
if(myCustomeEvent != null)
{
var eventArgs = new myCustomeEventArgs("Some Variable", "Another Varaible");
myCustomeEvent(this, eventArgs);
//Here you can now with the return of the event work with the event args
if(eventArgs.DoOverride)
{
//Do Something
}
}
Nguồn
2013-07-16 13:55:36
Bạn có thể vui lòng xây dựng trên' bao gồm thuộc tính có thể ghi trên một tập hợp EventArgs tùy chỉnh được chuyển đến phần sự kiện' không? – Odys
@Odys Tùy chỉnh đối tượng EventArgument. Tạo thuộc tính nơi kết quả trực tiếp. – Crisfole