Avviso del compilatore (livello 1) CS3018

Aggiornamento: novembre 2007

Messaggio di errore

'tipo' non può essere contrassegnato come compatibile con CLS perché è un membro del tipo 'tipo' non compatibile con CLS.
'type' cannot be marked as CLS-Compliant because it is a member of non CLS-compliant type 'type'

Questo avviso viene visualizzato quando una classe nidificata con l'attributo CLSCompliant impostato su true viene dichiarata membro di una classe il cui attributo CLSCompliant è impostato su false. L'operazione non è consentita perché una classe nidificata, se è membro di una classe esterna non compatibile con CLS, non può essere compatibile con CLS. Per correggere l'errore, rimuovere l'attributo CLSCompliant dalla classe nidificata oppure sostituire l'impostazione true dell'attributo con false. Per ulteriori informazioni sulla compatibilità con CLS, vedere Scrittura di codice compatibile con CLS e Specifiche CLS (Common Language Specification).

Esempio

Il seguente codice di esempio genera l'errore 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 {}
}