Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Generic parameter constraint type <typename> is not CLS-compliant
Un tipo generico viene contrassegnato come <CLSCompliant(True)>, ma un vincolo su uno dei suoi parametri di tipo consente di specificare un tipo contrassegnato come <CLSCompliant(False)>, non contrassegnato o che non si qualifica in quanto è di tipo non compatibile.
Affinché un tipo sia compatibile con Specifiche CLS (Common Language Specification) (CLS), è necessario che utilizzi solo i tipi non compatibili con CLS. Questo vale anche per i vincoli sui parametri di tipo di un tipo generico.
I seguenti tipi di dati Visual Basic non sono compatibili con CLS:
Quando l'attributo CLSCompliantAttribute viene applicato 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 a un elemento non viene applicato l'CLSCompliantAttribute, 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: BC40040
Per correggere l'errore
Se il tipo generico deve prendere un parametro di tipo vincolato da questo tipo particolare, rimuovere CLSCompliantAttribute. Il tipo non può essere compatibile con CLS.
Se il tipo generico deve essere compatibile con CLS, modificare il tipo di questo vincolo al tipo con una compatibilità con CLS più vicina. Al posto di UInteger ad esempio potrebbe essere possibile utilizzare Integer se non è necessario l'intervallo di valore al di sopra di 2.147.483.647. Se è necessario l'intervallo esteso, è possibile sostituire UInteger con Long.