J'ai essayé de créer un contrôle abstrait pour gérer une partie de l'état dans notre application. Cependant, j'ai couru une faute de quelques issues de CLS et espérais que quelqu'un pourrait fournir un aperçu.Comprendre la conformité CLS et le code correct
J'ai une énumération en tant que tel:
<Flags()> _
Public Enum FormState
Read = 1
Edit = 2
Insert = 4
End Enum
Et une classe en tant que telle:
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
Lorsque je tente de compiler ce code, je suis parti avec un avertissement que le Etat propriété n'est pas compatible CLS et l'argument state non plus. Comment venir? Et comment puis-je corriger ce problème pour supprimer les avertissements?
- J'ai essayé d'ajouter le < CLSCompliant (True)> attribut à deux éléments sans chance
- J'ai essayé de diffuser l'article MSDN Non-CLS-compliant 'MustOverride' member is not allowed in a CLS-compliant dans le code avec aucun résultat
- I » avons essayé de changer les accesseurs
Friend
au lieu dePublic
- J'ai essayé spécifier un type pour le Enum (
Integer
etUInteger
)
Si vous allez juste ignorer les avertissements, pourquoi vous souciez-vous CLS en premier lieu? – MichaelGG
Je me demande pareil. –
Je préfèrerais comprendre les avertissements et ce qu'ils signifient alors les avoir directement supprimés/ignorés. Désolé pour tout malentendu. –