Поделиться через


Предупреждение компилятора CS3024

Обновлен: Ноябрь 2007

Сообщение об ошибке

Тип ограничения "type" несовместим с CLS.
Constraint type 'type' is not CLS-compliant.

Компилятор выдает данное предупреждение, поскольку применение типа, несовместимого с CLS, в качестве ограничения универсального типа может исключить возможность использования универсального класса кодом, написанном на некоторых языках.

Устранение данного предупреждения

  • В качестве ограничения типа используйте тип, совместимый с CLS.

Пример

В следующем примере предупреждение CS3024 возникает в нескольких местах.

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

См. также

Ссылки

Ограничения параметров типа (руководство по программированию в C#)