EventArgs(Of T)被标记为不符合CLS

时间:2010-02-17 13:38:58

标签: .net vb.net

我在VB.NET解决方案中编写了一个通用的EventArgs类:

Public Class EventArgs(Of T)
        Inherits EventArgs

    Private _eventData As T

    Public ReadOnly Property EventData() As T
        Get
            Return _eventData
        End Get
    End Property

    Public Sub New(ByVal data As T)
        _eventData = data
    End Sub
End Class

当我按照以下示例使用它时,它表示e不符合CLS。任何人都知道如何解决这个问题,或者至少可以解释为什么会发生这种情况?

Event MarketModeChanged(ByVal sender As Object, ByVal e As EventArgs(Of Integer))

2 个答案:

答案 0 :(得分:2)

你所做的事似乎没有任何问题,afaik。您的通用事件args类是公共的,这意味着如果您没有将程序集标记为符合cls(将<Assembly: CLSCompliant(True)>添加到a​​ssemblyinfo.vb文件中),如果您尝试在其他类型中使用此类型,则会收到此警告项目

答案 1 :(得分:1)

<Assembly: CLSCompliant(True)>添加到定义类型的程序集,或将<CLSCompliant(True)>添加到类型本身。