Il tipo sottostante <nometipo> di Enum non è compatibile con CLS

Aggiornamento: novembre 2007

Underlying type <typename> of Enum is not CLS-compliant

Il tipo di dati specificato per questa enumerazione non fa parte di CLS (Specifiche CLS (Common Language Specification)). Non si tratta di un errore all'interno del componente, poiché .NET Framework e Visual Basic supportano questo tipo di dati. Tuttavia, un altro componente scritto in codice specificamente compatibile con CLS può non supportare questo tipo di dati. Un componente di questo tipo potrebbe non interagire correttamente con il componente in fase di sviluppo.

I seguenti tipi di dati Visual Basic non sono compatibili con CLS:

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

ID errore: BC40032

Per correggere l'errore

  • Se il componente interagisce solo con altri componenti .NET Framework o non interagisce con nessun altro componente, non è necessaria alcuna modifica.

  • Se si interagisce con un componente non scritto per .NET Framework, potrebbe essere possibile determinare, tramite reflection o dalla documentazione, se il tipo di dati è supportato. In caso affermativo, non è necessaria alcuna modifica.

  • Se si interagisce con un componente che non supporta questo tipo di dati, è necessario sostituirlo con il tipo più prossimo compatibile con la specifica CLS. Anziché UInteger, ad esempio, potrebbe essere possibile utilizzare Integer se non si necessita dell'intervallo di valori superiore a 2.147.483.647. Se l'intervallo esteso non è necessario, è possibile sostituire UInteger con Long.

  • Nel caso in cui si debba interagire con oggetti COM o di automazione, è necessario tenere conto che alcuni tipi possono presentare un'ampiezza di dati diversa rispetto a .NET Framework. uint, ad esempio, in altri ambienti è spesso rappresentato con 16 bit. Se si passa un argomento a 16 bit a un componente di questo tipo, è necessario dichiararlo come UShort anziché come UInteger nel codice Visual Basic gestito.

Vedere anche

Concetti

Cenni preliminari su reflection

Scrittura di codice compatibile con CLS

Altre risorse

Reflection