Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 1) CS3018

Nie można oznaczyć typu jako zgodnego ze specyfikacją CLS, ponieważ jest elementem członkowskim typu niezgodnego ze specyfikacją CLS "type"

To ostrzeżenie występuje, jeśli zagnieżdżona klasa z atrybutem CLSCompliant ustawiona true na jest zadeklarowana jako składowa klasy zadeklarowanej za pomocą atrybutu CLSCompliant ustawionego na falsewartość . Nie jest to dozwolone, ponieważ zagnieżdżona klasa nie może być zgodna ze specyfikacją CLS, jeśli jest członkiem klasy zewnętrznej, która nie jest zgodna ze specyfikacją CLS. Aby rozwiązać to ostrzeżenie, usuń atrybut CLSCompliant z zagnieżdżonej klasy lub zmień go z true na false. Aby uzyskać więcej informacji na temat zgodności środowiska CLS, zobacz Niezależność języka i składniki niezależne od języka.

Przykład

Poniższy przykład generuje plik 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 {}  
}