使用英语阅读

通过


编译器警告(等级 1)CS3018

“type”是不符合 CLS 的类型“type”的成员,因此不能将其标记为符合 CLS

如果将 CLSCompliant 特性设置为 true 的某一嵌套类声明为通过将 CLSCompliant 特性设置为 false来声明的类的成员,将发生此警告。 这是不允许的,因为如果嵌套类是不符合 CLS 的某一外部类的成员,它将无法符合 CLS。 若要解决此警告,请从嵌套类中删除 CLSCompliant 特性,或将其从 true 更改为 false。 有关 CLS 符合性的详细信息,请参阅语言独立性和与语言无关的组件

示例

下面的示例生成 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 {}  
}