영어로 읽기

다음을 통해 공유


컴파일러 경고(수준 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 {}  
}