アプリケーションの状態の一部を管理するために、抽象化されたコントロールを作成しようとしました。しかし、私はいくつかの CLS の問題を抱えており、誰かが何らかの洞察を提供してくれることを望んでいました.
私はそのような列挙を持っています:
<Flags()> _
Public Enum FormState
Read = 1
Edit = 2
Insert = 4
End Enum
そして、そのようなクラス:
Public MustInherit Class Fields
Inherits System.Web.UI.UserControl
Public Property State() As Enumerators.FormState
Get
Return _State
End Get
Set(ByVal value As Enumerators.FormState)
_State = value
ToggleState(value)
End Set
End Property
Protected MustOverride Sub ToggleState(ByVal state As FormState)
End Class
このコードをコンパイルしようとすると、Stateプロパティが CLS に準拠しておらず、state引数も準拠していないという警告が表示されます。どうして?また、この問題を修正して警告を削除するにはどうすればよいですか?
- <CLSCompliant(True)> 属性を両方のアイテムに追加しようとしましたが、うまくいきませんでした
- MSDN の記事Non-CLS-compliant 'MustOverride' member is not allowed in a CLS-compliant into the codeを広めようとしましたが、結果はありませんでした
Friend
アクセサーを代わりに変更しようとしましたPublic
- Enum の型を指定してみました (
Integer
andUInteger
)