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