下面是一個具體例子是不是根據VS.NET CLS-2005投訴您的代碼變成CLS投訴需要哪些更高級的規則?
Public Interface IDbId
Function GetNativeObject() As Object
Function Equals(ByVal compObj As IDbId) As Boolean
Function CompareTo(ByVal compObj As IDbId) As Integer
Function ToString() As String
End Interface
這是我與類,如DbId32,DbId64,DbIdString等實現一個接口,是一種方法來將本地數據庫主鍵類型抽象爲一個常見的.Net類型。
我沒有顯示的是實例化正確的具體類型的工廠方法(例如,給定一個本地數據庫類型的SQL Server類型爲'int'的新DbId32)。
現在,讓我們說,我去使用這個接口,像這樣:
Public MustOverride ReadOnly Property ID() As IDbId
VS現在輸出該警告消息:
返回類型的函數「ID」是不是CLS-投訴。
我可以通過添加該屬性來我的接口,像這樣停止這些警告:
<CLSCompliant(True)> _
Public Interface IDbId
...
的這個接口定義似乎打破規則的所有功能都記錄here。那麼爲什麼VS顯示這些警告?
哇,好所有的答案。我會嘗試所有這些建議。 – 2008-12-02 00:48:41