Číst v angličtině

Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 1) CS3018

Typ nelze označit jako kompatibilní se specifikací CLS, protože je členem typu, který nedodržuje předpisy CLS.

K tomuto upozornění dochází, pokud je vnořená třída s atributem CLSCompliant nastavena na true je deklarována jako člen třídy deklarované s atributem CLSCompliant nastaveným na false. To není povoleno, protože vnořená třída nemůže být kompatibilní se specifikací CLS, pokud je členem vnější třídy, která není kompatibilní se specifikací CLS. Pokud chcete toto upozornění vyřešit, odeberte atribut CLSCompliant z vnořené třídy nebo ho změňte na truefalse. Další informace o dodržování předpisů CLS najdete v tématu Nezávislost jazyka a komponenty nezávislé na jazyce.

Příklad

Následující ukázka vygeneruje CS3018.

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