'<nomeclasse>' non è compatibile con CLS perché deriva da '<nomeclassebase>', che non è compatibile con CLS

Aggiornamento: novembre 2007

'<classname>' is not CLS-compliant because it derives from '<baseclassname>', which is not CLS-compliant

Una classe o un'interfaccia è contrassegnata come <CLSCompliant(True)> quando deriva da o implementa un tipo contrassegnato come <CLSCompliant(False)> oppure non contrassegnato.

Una classe o un'interfaccia è compatibile con Specifiche CLS (Common Language Specification) (CLS) se lo è anche la relativa gerarchia di ereditarietà. Di conseguenza, anche ogni tipo da cui la classe o l'interfaccia eredita, direttamente o indirettamente, deve essere compatibile. In modo simile, se una classe implementa una o più interfacce, tutte le relative gerarchie di ereditarietà devono essere compatibili.

Quando si applica l'CLSCompliantAttribute a un elemento di programmazione, il parametro isCompliant dell'attributo viene impostato su True o False per indicare la compatibilità o la non compatibilità. L'impostazione predefinita per questo parametro non è disponibile, è necessario quindi specificare un valore.

Se CLSCompliantAttribute non viene applicato a un elemento, l'elemento non sarà considerato compatibile.

Per impostazione predefinita, si tratta di un messaggio di avviso. Per informazioni su come nascondere gli avvisi o considerarli come errori, vedere Configurazione degli avvisi in Visual Basic.

ID errore: BC40026

Per correggere l'errore

  • Se è richiesta la compatibilità CLS, definire questo tipo in un'altra gerarchia di ereditarietà o in un altro schema di implementazione.

  • Se questo tipo deve rimanere nella gerarchia di ereditarietà o nello schema di implementazione corrente, rimuovere l'attributo CLSCompliantAttribute dalla definizione o contrassegnarlo come <CLSCompliant(False)>.

Vedere anche

Concetti

Scrittura di codice compatibile con CLS