Avertissement du compilateur (niveau 1) CS3018
Mise à jour : novembre 2007
Message d'erreur
'type' ne peut pas être marqué comme conforme CLS, car il est membre d'un type 'type' non conforme CLS
'type' cannot be marked as CLS-Compliant because it is a member of non CLS-compliant type 'type'
Cet avertissement se produit si une classe imbriquée dont l'attribut CLSCompliant a la valeur true est déclarée comme membre d'une classe déclarée avec l'attribut CLSCompliant ayant la valeur false. Cela n'est pas autorisé, dans la mesure où une classe imbriquée ne peut pas être conforme CLS si elle est membre d'une classe externe qui n'est pas conforme CLS. Pour résoudre cet avertissement, supprimez l'attribut CLSCompliant de la classe imbriquée ou changez sa valeur de true en false. Pour plus d'informations sur la conformité CLS, consultez Écriture d'un code conforme CLS et Spécification CLS (Common Language Specification).
Exemple
L'exemple suivant génère l'erreur 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 {}
}