Ler em inglês

Compartilhar via


Aviso do compilador (nível 1) CS3018

'type' não pode ser marcado como em conformidade com CLS por ser membro de um tipo 'type' sem conformidade com CLS

Esse aviso ocorrerá se uma classe aninhada com o atributo CLSCompliant definida como true for declarada como um membro da classe declarada com o atributo CLSCompliant definida como false. Isso não é permitido, uma vez que uma classe aninhada não pode ser compatível com CLS se for um membro de uma classe externa que não esteja em conformidade com CLS. Para resolver esse aviso, remova o atributo CLSCompliant da classe aninhada ou altere-o de true para false. Para obter mais informações sobre conformidade com a CLS, consulte Componentes de independência de linguagem e componentes independentes da linguagem.

Exemplo

O exemplo a seguir gera o erro 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 {}  
}