Pergunta

Eu tenho tentado criar um controle captada para gerenciar alguns do estado em nossa aplicação. No entanto, eu tenho que correr uma falta de algumas questões CLS e estava esperando que alguém poderia fornecer algum insight.

Eu tenho uma enumeração como tal:

<Flags()> _
Public Enum FormState
    Read = 1
    Edit = 2
    Insert = 4
End Enum

E uma classe como tal:

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

Quando tento compilar este código eu fiquei com um aviso de que o Estado propriedade não é compatível com CLS e nem é o Estado argumento. Por quê? E como posso corrigir este problema para remover os avisos?

Foi útil?

Solução

Olhando para o seu código, o enum parece ser parte de uma classe chamada recenseadores. A classe não está listado no seu código, mas eu estou supondo que você tem total controle sobre ele.

As necessidades de classe para ser marcado com o CLS atributo compatível também.

Outras dicas

Para remover os avisos adicionar os seguintes atributos de modo que a classe, método e propriedade parecido com este:

<CLSCompliant(False)> _
Public MustInherit Class Fields
    Inherits System.Web.UI.UserControl

    <CLSCompliant(False)> _
    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

    <CLSCompliant(False)> _
    Protected MustOverride Sub ToggleState(ByVal state As FormState)
End Class

Isso significa para o compilador que você quer que os avisos removido e que está ciente de seu código não é CLSCompliant.

Pode ser que você não tem um item com valor 0.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top