2010-03-09 2 views
3

오류 :일반에서 WithEvents

'WithEvents' variables can only be typed as classes, interfaces or type parameters with class constraints

배경 :

Public Class Tadpole(Of T As IVisibleChanged, P As IVisibleChanged) 
    Private WithEvents _Tad As T ' ERROR ' 
    Private WithEvents _Pole As P ' ERROR ' 

    Public Property Tad() As T ... 

    Public Property Pole() As P ... 

End Class 

''' IVisibleChanged ''' 
Public Interface IVisibleChanged 
    Property Visible() As Boolean 
    Event VisibleChanged As EventHandler 
End Interface 

해결 방법 :

가. AddHandler을 사용하여 구조에 정의 된 이벤트를 처리하십시오.

edit

b. Private WithEvents _Tad AsIVisibleChanged (M.A. Hanin)

c를 사용하십시오. ?

답변

3

WithEvents가 값 유형을 지원할 수 없기 때문입니다. T를 IVisibleChanged로만 제한 할 경우 참조 유형을 보장하지 않으므로 WithEvents를 사용할 수 없습니다. 나는 VB 구문을 모르는하지만 C#을 같은 아무것도 있다면 아마 당신은 할 수 :

' Not sure of the VB syntax. 
(Of T As {IVisibleChanged, Class}) 

이 T는이 구조체 수 없음을 또한 의해 IVisibleChanged 구현하지 않습니다 보장합니다.

+0

구문은 정상입니다. 감사합니다! – serhio

관련 문제