2012-09-19 3 views
5

Trong đoạn mã sau, tôi cần phải biết cú pháp của việc truyền hai chuỗi khi sự kiện được nâng lên.Cú pháp để gửi hai chuỗi trong eventArgs

[PublishEvent("Click")] 
public event EventHandler<EventArgs<string>> MyEvent; 

Cảm ơn, Saxon.

+2

là không ai trong số các câu trả lời hợp lệ? –

Trả lời

19

Cách sạch là tạo ra lớp riêng bạn mà xuất phát từ EventArgs:

public class MyEventArgs : EventArgs 
    { 
     private readonly string _myFirstString; 
     private readonly string _mySecondString; 

     public MyEventArgs(string myFirstString, string mySecondString) 
     { 
      _myFirstString = myFirstString; 
      _mySecondString = mySecondString; 
     } 

     public string MyFirstString 
     { 
      get { return _myFirstString; } 
     } 

     public string MySecondString 
     { 
      get { return _mySecondString; } 
     } 
    } 

Và sử dụng nó như thế này:

public event EventHandler<MyEventArgs> MyEvent; 

Để nâng cao sự kiện, bạn có thể làm một cái gì đó như thế này:

protected virtual void OnMyEvent(string myFirstString, string mySecondString) 
    { 
     EventHandler<MyEventArgs> handler = MyEvent; 
     if (handler != null) 
      handler(this, new MyEventArgs(myFirstString, mySecondString)); 
    } 
2

Làm cho lớp học của bạn và mở rộng cho EventArgs và vượt qua nó

public class YourCustomeEvent : EventArgs 
{ 
    public string yourVariable {get; } 
} 

Bây giờ bạn phải cung cấp lớp tùy chỉnh của bạn như thế này

public event EventHandler<YourCustomeEvent> MyEvent;