2011-01-17 19 views
9

Tôi đã quen với lập trình trong C# và một điều tôi nhớ về Java là dường như không có khả năng xử lý sự kiện tích hợp sẵn của C#:Thực hiện các sự kiện C# giống như trong Android/Java

// define event signature 
public delegate void SomeEventHandler(); 

class SomeEventGenerator { 
    // define subscribable event property 
    public event SomeEventHandler SomeEvent; 

    protected void OnSomeEvent() { 
     if (SomeEvent != null) { 
      SomeEvent(); 
     } 
    } 
} 

class SomeEventClient { 
    public SomeEventClient(SomeEventGenerator eg) { 
     // subscribe 
     eg.SomeEvent += new SomeEventHandler(eg_SomeEvent); 
     // do some stuff 
     // unsubscribe 
     eg.SomeEvent -= new SomeEventHandler(eg_SomeEvent); 
    } 

    private void eg_SomeEvent() { 
     // handle event 
    } 
} 

Cách tốt nhất để tải nội dung nào đó tương tự và nhẹ trong Java/Android có khả năng đăng ký/hủy đăng ký nhiều ứng dụng khách và gọi tất cả khách hàng đã đăng ký cùng một lúc?

Trả lời

6

Bạn sẽ muốn xem xét khái niệm về người nghe trong java. Tôi tìm thấy một bài viết rất hay gọi là "C# từ góc độ nhà phát triển Java" mà bạn có thể muốn kiểm tra.

http://www.25hoursaday.com/CsharpVsJava.html

+0

Vì vậy, bạn phải tự làm. Có một phần nhỏ về các sự kiện trong bài viết mà tôi thấy hữu ích. Tôi thiết lập một số giao diện 'OnSomeEventListener' và' addListener'/'removeListener' /' callListeners' được hỗ trợ bởi 'Vector '. – jnylen

+0

Đó là một cách viết đẹp. Cảm ơn các liên kết. –

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