Partilhar via


Tipo de parâmetro '<parametername>' não é compatível com CLS

Um procedimento é marcado sistema autônomo <CLSCompliant(True)> declara um parâmetro, mas com um tipo que está marcado sistema autônomo <CLSCompliant(False)>, não está marcada ou não está qualificada a porque ele é um tipo incompatível.

Para um procedimento para ser compatível com o CLS (Common Language Specification) (CLS), ele deve usar somente tipos compatíveis com CLS.Isso se aplica aos tipos de parâmetros, o tipo de retorno e os tipos de todas as suas variáveis locais.

Os seguintes tipos de dados Visual Basic não são compatíveis com CLS:

Quando você aplica o CLSCompliantAttribute a um elemento de programação, você define o parâmetro isCompliant do atributo para True ou False para indicar compatibilidade ou incompatibilidade.Não há padrão para este parâmetro, e você deve fornecer um valor.

Se você não aplicar o CLSCompliantAttribute a um elemento, ele vai ser considerado incompatível.

Por padrão, essa é uma mensagem de aviso.Para informações sobre como ocultar avisos ou tratar avisos como erros, consulte Configurando Avisos (Warnings) no Visual Basic.

ID de erro: BC40028

Para corrigir este erro

  • Se o procedimento deve ter um parâmetro deste tipo particular, remova o CLSCompliantAttribute. O procedimento não pode ser compatível com CLS.

  • Se o procedimento deve ser compatível com CLS, alterar o tipo desse parâmetro do tipo compatível com CLS mais próximo.Por exemplo, no lugar de UInteger Você poderá usar Integer Se você não precisa o intervalo de valores acima de 2.147.483.647. Se você precisar de intervalo estendido, você pode substituir UInteger com Long.

  • Se você estiver interfaceando com objetos de automação ou COM, tenha em mente que alguns tipos têm larguras de dados diferentes do que em .NET Framework.Por exemplo, int é geralmente 16 bits em outros ambientes.Se você estiver retornando um inteiro de 16 bits para tal componente, declare-o como Short em vez de Integer no seu código gerenciado Visual Basic.

Consulte também

Conceitos

Escrevendo código compatível com CLS