Прочитать на английском

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


Предупреждение компилятора (уровень 1) CS3018

"тип" не может быть помечен как совместимый с CLS, поскольку является членом типа "тип", не совместимого с CLS

Это предупреждение возникает, когда вложенный класс, атрибуту CLSCompliant которого присвоено значение true , объявляется как член класса, который объявлен с атрибутом CLSCompliant, равным false. Это недопустимо, так как вложенный класс не может быть соответствующим CLS, если он является членом внешнего класса, несовместимого с CLS. Для устранения этого предупреждения удалите атрибут CLSCompliant из вложенного класса либо измените его значение с true на false. Дополнительные сведения о соответствии CLS см. в статье о независимости языка и независимых от языка компонентах.

Пример

Следующий пример приводит к возникновению предупреждения CS3018:

C#
// CS3018.cs  
// compile with: /target:library  
using System;  
  
[assembly: CLSCompliant(true)]  
[CLSCompliant(false)]  
public class Outer  
{  
   [CLSCompliant(true)]   // CS3018  
   public class Nested {}  
  
   // OK  
   public class Nested2 {}  
  
   [CLSCompliant(false)]  
   public class Nested3 {}  
}