CS3024 de aviso do compilador

Mensagem de erro

Tipo de restrição de 'type' não é compatível com CLS.

O compilador emite esse aviso porque o uso de um tipo não compatível de CLS sistema autônomo uma restrição de tipo genérico impossibilitar para código escrito em alguns idiomas consumir sua classe genérica.

Para eliminar esse aviso

  • Use um tipo compatível com CLS para a restrição de tipo.

Exemplo

O exemplo a seguir gera CS3024 em vários locais:

// 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;
    }
}

Consulte também

Referência

Restrições em parâmetros de tipo (Guia de programação C#)