Share via


컴파일러 경고(수준 1) CS3018

업데이트: 2007년 11월

오류 메시지

'type'은(는) CLS 규격이 아닌 'type' 형식의 멤버이므로 CLS 규격으로 표시할 수 없습니다.
'type' cannot be marked as CLS-Compliant because it is a member of non CLS-compliant type 'type'

이 경고는 CLSCompliant 특성이 true로 설정된 중첩 클래스가 CLSCompliant 특성이 false로 설정된 클래스의 멤버로 선언된 경우에 발생합니다. 중첩 클래스가 CLS 규격이 아닌 외부 클래스의 멤버인 경우 중첩 클래스는 CLS 규격이 될 수 없으므로 허용되지 않습니다. 이 경고를 해결하려면 중첩 클래스에서 CLSCompliant 특성을 제거하거나 특성을 true에서 false로 변경합니다. CLS 규격에 대한 자세한 내용은 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 {}
}