1
예 나는 노동자 계급에게C#에서 이벤트를 발생시키는 바로 가기/손쉬운 (VB) 스타일 방법이 있습니까? VB에서
Public Class worker
Public Event EventNumber1(ByVal messages As Dictionary(Of Integer, String))
Public Event EventNumber2(ByVal message As String)
Public Sub CallEventNumber1()
Dim dict As New Dictionary(Of Integer, String)
dict.Add(1, "EventNumber1 First message")
dict.Add(2, "EventNumber1 Second message")
RaiseEvent EventNumber1(dict)
End Sub
Public Sub CallEventNumber2()
RaiseEvent EventNumber2("I am an EventNumber2 Message")
End Sub
End Class
이 있고 작업자 클래스
class Worker
{
public delegate void EventNumber1Handler(Dictionary<int, string> messages);
public delegate void EventNumber2Handler(string message);
public event EventNumber1Handler EventNumber1;
public event EventNumber2Handler EventNumber2;
public void CallEventNumber1()
{
Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1, "EventNumber1 First message");
dict.Add(2, "EventNumber1 Second message");
if (EventNumber1 != null)
EventNumber1(dict);
}
public void CallEventNumber2()
{
if (EventNumber2 != null)
EventNumber2("I am an EventNumber2 Message");
}
}
최대 와이어 그와
AddHandler _worker.EventNumber1, AddressOf EventNumber1Handler
AddHandler _worker.EventNumber2, AddressOf EventNumber2Handler
와 C#으로 다른 클래스에서 그들을 철사
worker.EventNumber1 += new Worker.EventNumber1Handler(worker_EventNumber1);
worker.EventNumber2 += new Worker.EventNumber2Handler(worker_EventNumber2);
그래서 내 질문에 항상 C#에서 이벤트와 함께 대리인을 추가해야합니까? C# 3.0/4.0에 대한 새로운 구문이 있습니까?
감사
_Eric