Ler em inglês

Compartilhar via


Membro 'MustOverride' não está em conformidade com CLS não permitido em uma <classname> em conformidade com CLS

Uma classe é marcada como <CLSCompliant(True)>, mas contém uma propriedade ou procedimento MustOverride marcado como <CLSCompliant(False)> ou não marcado.

Quando uma classe está em conformidade com o CLS (Independência de Linguagem e Componentes Independentes de Linguagem), um aplicativo que usa essa classe acessa apenas os membros que também são marcados como <CLSCompliant(True)> e ignora os membros que não são. No entanto, o aplicativo não pode ignorar uma propriedade ou procedimento MustOverride, pois precisa acessar essa propriedade ou procedimento para substituí-la.

Quando você aplica o CLSCompliantAttribute a um elemento de programação, define o parâmetro isCompliant do atributo como True ou False para indicar conformidade ou não conformidade. Não há nenhum padrão para esse parâmetro e você precisa fornecer um valor.

Se você não aplicar o CLSCompliantAttribute a um elemento, ele será considerado que não está em conformidade.

Por padrão, esta mensagem é um aviso. Para obter mais informações sobre como ocultar avisos ou tratar avisos como erros, consulte Configurar Avisos no Visual Basic.

ID do Erro: BC40034

Para corrigir este erro

  • Se você precisar de conformidade com CLS e tiver controle sobre o código-fonte da classe, marque o membro como <CLSCompliant(True)>.

  • Se você precisar de conformidade com CLS e não tiver controle sobre o código-fonte da classe ou se ele não se qualificar para estar em conformidade, defina esse membro em uma classe diferente.

  • Se você exigir que esse membro permaneça incompatível, remova a palavra-chave MustOverride da definição dele, remova a CLSCompliantAttribute da definição de classe ou marque a classe como <CLSCompliant(False)>.

Confira também