Avviso del compilatore CS3024

Aggiornamento: novembre 2007

Messaggio di errore

Il tipo di vincolo 'tipo' non è compatibile con CLS.
Constraint type 'type' is not CLS-compliant.

Il compilatore genera questo avviso perché l'utilizzo di un tipo non compatibile con CLS come vincolo di tipo generico potrebbe impedire a codice scritto in alcuni linguaggi l'utilizzo della classe generica.

Per eliminare l'avviso

  • Utilizzare un tipo compatibile con CLS per il vincolo di tipo.

Esempio

Nell'esempio seguente viene generato l'errore CS3024 in molti percorsi:

// cs3024.cs
// Compile with: /target:library
 [assembly: System.CLSCompliant(true)]

[type: System.CLSCompliant(false)]
public class TestClass // CS3024
{
    public ushort us;
}
[type: System.CLSCompliant(false)]
public interface ITest // CS3024
{}
public interface I<T> where T : TestClass
{}
public class TestClass_2<T> where T : ITest
{}
public class TestClass_3<T> : I<T> where T : TestClass
{}
public class TestClass_4<T> : TestClass_2<T> where T : ITest
{}
public class Test
{
    public static int Main()
    {
        return 0;
    }
}

Vedere anche

Riferimenti

Vincoli sui parametri di tipo (Guida per programmatori C#)