2013-07-26 1 views
2

내가 예를 들어,이 하위이있을 것이다 VB.NET에 .. 질문이 있습니다 : 다음C# 및 VB.NET 제기 이벤트 차이

Sub AcceptClient(ByRef pSocket As Socket) 
'Some Code... 
End Sub 

그리고를, 나는이있을 것, 그것을 호출 때마다 이벤트가 발생합니다 :이 작업을 수행 할 때

AddHandler mAcceptor.OnAccepted, AddressOf AcceptClient 

그러나, C#으로, 다음 코드를 사용 :

mAcceptor.OnAccepted += acceptClient(); 
void acceptClient(Socket pSocket) 

그것은 내가 pSocket 인수를 누락했다. 그러나 VB.NET에서는 완벽하게 작동합니다. 왜 그거야? 나는 트릭을하지 않은 "ref"를 추가하려고 시도했다. 이 문제를 해결하기 위해 내가 할 수있는 다른 일은 무엇입니까? .. 감사합니다.

답변

6
acceptClient() 

은 인수가없는 acceptClient 메서드를 호출하고 결과를 반환합니다. 원하는 것은이 메소드를 이벤트 핸들러로 추가하는 것입니다.

mAcceptor.OnAccepted += acceptClient; 

괄호가 없습니다. 메소드를 호출하는 대신 메소드를 사용하고 있습니다.