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
Return type of function '<procedurename>' is not CLS-compliant
Una routine Function viene contrassegnata come <CLSCompliant(True)>, ma restituisce un tipo che è contrassegnato come <CLSCompliant(False)>, non è contrassegnato o non può essere utilizzato in quanto tipo non compatibile.
Per essere compatibile con CLS (Specifiche CLS (Common Language Specification)), è necessario che la routine utilizzi solo tipi compatibili con CLS. Quanto descritto vale per i tipi dei parametri, per il tipo di valore restituito e per i tipi di tutte le variabili locali.
I seguenti tipi di dati Visual Basic non sono compatibili con CLS:
Quando 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 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: BC40027
Per correggere l'errore
Se è necessario che la routine Function restituisca questo tipo particolare, rimuovere CLSCompliantAttribute. La routine non può essere compatibile con CLS.
Per rendere la routine Function compatibile con CLS, modificare il tipo di restituzione nel tipo compatibile più vicino. 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. int, ad esempio, in altri ambienti è spesso rappresentato con 16 bit. Se viene restituito un valore integer di 16 bit a un componente di questo tipo, è necessario eseguirne la dichiarazione come Short anziché come Integer nel codice gestito Visual Basic.