< proceduresignature1 > não é compatível com CLS porque ele sobrecarrega < proceduresignature2 > que difere dele somente pelo array ou classificação dos tipos de parâmetro de array.
Um procedimento ou propriedade é marcada como <CLSCompliant(True)> quando substitui outro procedimento ou propriedade e a única diferença entre suas listas de parâmetro é o nível de aninhamento de um array denteado ou a posição de um array.
Nas declarações a seguir, as segunda e terceira declarações geram esse erro.
Overloads Sub processArray(ByVal arrayParam() As Integer)
Overloads Sub processArray(ByVal arrayParam()() As Integer)
Overloads Sub processArray(ByVal arrayParam(,) As Integer)
A segunda declaração altera o parâmetro unidimensional original arrayParam para um array de arrays.A terceira declaração muda arrayParam para um array bidimensional (tamanho 2).Enquanto o Visual Basic permite sobrecargas para diferir somente por uma dessas alterações, tais sobrecargas não são compatíveis com o CLS (Common Language Specification) (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: BC40035
Para corrigir este erro
Se você precisar de compatibilidade com CLS, defina suas sobrecargas para diferirem umas das outras em mais maneiras do que somente as alterações citadas nessa página de Ajuda.
Se você precisar que as sobrecargas sejam diferentes somente pelas alterações citadas nessa página da Ajuda, remova os CLSCompliantAttribute de suas definições ou marque-os como <CLSCompliant(False)>.
Consulte também
Conceitos
Escrevendo código compatível com CLS