2009-04-09 7 views
1

C#에서이 작업을 수행하는 방법을 알고 있지만 VB.NET에서 구문 문제가 발생한다고 생각합니다. 'handle'이벤트 기능을 활용해야하기 때문입니다.이벤트 저장 및 호출 (VB.NET .NET 2.0)

나는 어쨌든 (아마도 위임) 속성의 속성에 저장해야하는 다른 이벤트가 있습니다. (단지 해당 이벤트에 연결된 속성에 속성을 추가하기 만합니다.)

예.

<BindEvent(EventThing)>_ 
Public ReadOnly Property IsTrue() As Boolean 
    Get 
    Return True 
    End Get 
End Property 

다른 프로그래머가 메서드에서 VB.NET handles 키워드를 사용할 수 있도록 이벤트가되어야합니다.

Public Delegate Sub TestEvent(ByVal sender As Object, ByVal e As Object) 
Public Event E As TestEvent 

Public Sub Test() Handles E 
End Sub 

이러한 속성은 이미 내가 관련 속성 (위임/이벤트)를 받고, 따라서 잡기 관련 속성을 결정하고 오전 일반 이벤트를 제기하고있다. 그런 다음 관련 이벤트를 제기하고 싶습니다.

다른 핸들러를 키우지 않을 특정 이벤트에 연결된 대리인을 사용한다면 어떻게됩니까?

또한 가능한 경우 이벤트 유형에 대해 Raise Event를 사용하는 각 속성에 대해 하위를 작성하지 않아도되므로 중복되는 것처럼 보입니다.

피하십시오 :

Public Event E As TestEvent 
Public Sub CallE(ByVal sender As Object, ByVal e As Object) 
    RaiseEvent E(sender, e) 
End Sub 
<BindDelegate(DelegateToCallE)>_ 
Public ReadOnly Property IsTrue() As Boolean 
    Get 
    Return True 
    End Get 
End Property 
+1

C#에서 원하는 것을 예제로 제공 할 수 있습니까? 문법상의 문제라면 아마도 더 많은 도움이 될 수 있습니다. 지금 당장 당신이 원하는 것을 이해하지 못합니다. 혼란 스럽습니다. – Fredou

답변

1
Public Class foo 

    Public Event TestEvent() 

End Class 


Public Class bar 
    Dim WithEvents x As New foo 
    Public Sub HandleEvent() Handles x.TestEvent 
    End Sub 
End Class 

이 당신이 찾고있는 무엇인가?

+0

불행히도 좋다고 생각합니다. –

0

나는 당신이 무엇을하려고하는지 잘 이해하지 못합니다. 이 같은 구문을 찾고 혹시 위치 :

Class BindEventAttribute 
    Inherits System.Attribute 

    Public Delegate Sub TestEvent() 
    Public Custom Event EventToRaise As TestEvent 
     AddHandler(ByVal value As TestEvent) 
      REM TODO: code what happens when anyone calls AddHandler on this event 
     End AddHandler 

     RemoveHandler(ByVal value As TestEvent) 
      REM TODO: code what happens when enyone calls RemoveHandler on this event 
     End RemoveHandler 

     RaiseEvent() 
      REM TODO: code what happens when anyone calls RaiseEvent on this event 
     End RaiseEvent 
    End Event 
End Class