gpt4 book ai didi

.net - 通用事件

转载 作者:行者123 更新时间:2023-12-02 00:41:29 25 4
gpt4 key购买 nike

错误:

'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 处理结构中定义的事件。

编辑

使用 Private WithEvents _Tad AsIVisibleChanged (M.A. Hanin)

最佳答案

我怀疑这是因为 WithEvents 不支持值类型。当您仅将 T 约束为 IVisibleChanged 时,您不能保证引用类型,因此无法使用 WithEvents。我不知道 VB 语法,但如果它类似于 C#,你可能会这样做:

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

这保证了 T 不仅会实现 IVisibleChanged,而且它不会是一个结构。

关于.net - 通用事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2408675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com