O tipo de restrição de parâmetro genérico <typename> não está em conformidade com CLS
Um tipo genérico é marcado como <CLSCompliant(True)>
, mas uma restrição em um de seus parâmetros de tipo especifica um tipo marcado como <CLSCompliant(False)>
, não é marcado ou não se qualifica porque é um tipo não compatível.
Para que um tipo esteja em conformidade com o CLS (Language Independence and Language-Independent Components), ele deve usar apenas tipos compatíveis com CLS. Isso também se aplica às restrições nos parâmetros de tipo de um tipo genérico.
Os seguintes tipos de dados do Visual Basic não são compatíveis com CLS:
Quando você aplica o atributo 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 CLSCompliantAttribute a um elemento, ele será considerado em não conformidade.
Por padrão, esta mensagem é um aviso. Para obter informações sobre como ocultar avisos ou tratá-los como erros, confira Configurar avisos no Visual Basic.
ID do Erro: BC40040
Se o tipo genérico precisar ter um parâmetro de tipo restrito por esse tipo específico, remova CLSCompliantAttribute. O tipo não pode ser compatível com CLS.
Se o tipo genérico precisar ser compatível com CLS, altere o tipo dessa restrição para o tipo mais próximo em conformidade com CLS. Por exemplo, no lugar de
UInteger
você poderá ser capaz de usarInteger
se não precisar do intervalo de valores acima de 2.147.483.647. Se você precisar do intervalo estendido, poderá substituirUInteger
porLong
.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: