2010-02-17 34 views
1

我在VB.NET解決方案寫了一個通用的EventArgs類:的EventArgs(Of T)已被標記爲不符合CLS

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

你所做的一切似乎都沒有錯,afaik。您的通用事件args類是公共的,這意味着如果您未將程序集標記爲符合cls的程序集(將<Assembly: CLSCompliant(True)>添加到您的assemblyinfo.vb文件中),如果您嘗試在其他項目中使用此類型,則會收到此警告。

1

添加<Assembly: CLSCompliant(True)>到定義類型的組件中,或添加到<CLSCompliant(True)>類型本身。

相關問題