Freigeben über


Compilerwarnung (Stufe 1) CS3018

"Typ" ist ein Member des nicht CLS-kompatiblen Typs "Typ" und kann daher nicht als CLS-kompatibel markiert werden

Diese Warnung wird ausgegeben, wenn eine geschachtelte Klasse mit dem auf true festgelegten CLSCompliant-Attribut als Member einer Klasse deklariert wird, die mit dem CLSCompliant-Attribut deklariert ist, das auf falsefestgelegt ist. Dies ist unzulässig, weil eine geschachtelte Klasse nicht CLS-kompatibel sein kann, wenn diese ein Member einer äußeren Klasse ist, die nicht CLS-kompatibel ist. Entfernen Sie das CLSCompliant-Attribut aus der geschachtelten Klasse, oder legen Sie es von true auf falsefest, um diese Warnmeldung zu vermeiden. Weitere Informationen zur CLS-Konformität finden Sie unter Sprachunabhängigkeit und sprachunabhängige Komponenten.

Beispiel

Im folgenden Beispiel wird CS3018 generiert.

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