Freigeben über


Compilerwarnung (Stufe 1) CS3018

Aktualisiert: November 2007

Fehlermeldung

"Typ" ist ein Member des nicht CLS-kompatiblen Typs "Typ" und kann daher nicht als CLS-kompatibel markiert werden
'type' cannot be marked as CLS-Compliant because it is a member of non CLS-compliant type 'type'

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 false festgelegt ist. Dies ist nicht zulässig, da eine geschachtelte Klasse nicht CLS-kompatibel sein kann, wenn diese ein Member einer nicht eingeschlossenen Klasse ist, die nicht CLS-kompatibel ist. Um diese Warnmeldung zu vermeiden, entfernen Sie das CLSCompliant-Attribut aus der geschachtelten Klasse, oder legen Sie es von true auf false fest. Weitere Informationen über die CLS-Kompatibilität finden Sie unter Schreiben von CLS-kompatiblem Code und CLS (Common Language Specification).

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