Compartilhar via


aviso do compilador (nível 1) CS3018

Mensagem de erro

'type' não pode ser marcado sistema autônomo compatível com CLS porque é um membro de tipo não compatível com CLS 'tipo'

Este aviso ocorre se uma classe aninhada com o atributo CLSCompliant definido sistema autônomo true é declarada sistema autônomo um membro de uma classe declarada com o atributo CLSCompliant definido sistema autônomo false. Isso não é permitido, como uma classe aninhada não pode ser compatível com CLS se ele for um membro de uma classe externa não é compatível com CLS.Para resolver esse aviso, remova o atributo CLSCompliant da classe aninhada ou alterá-lo de true para false. Para obter mais informações sobre a conformidade de CLS, consulte Escrevendo código compatível com CLS and CLS (Common Language Specification).

Exemplo

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