CLS 규격 코드를 작성하려면, 다음의 작업에서 CLS 규격 기능을 노출시켜야 합니다.
전용 클래스 정의, 공용 클래스의 전용 메서드 정의 및 지역 변수 정의에 사용하는 기능은 CLS 규칙을 따르지 않아도 됩니다. 또한 클래스를 구현하는 코드를 작성할 때 CLS 규칙을 따르지 않는 언어 기능을 사용하더라도 그 안에 CLS 규격 구성 요소가 포함될 수 있습니다.
참고: |
|---|
가변 배열(즉, 배열의 배열)은 CLS 규격입니다. .NET Framework 버전 1.0의 C# 컴파일러에서는 가변 배열이 CLS 규격이 아닌 것으로 잘못 보고됩니다. |
CLSCompliantAttribute를 사용하여 어셈블리, 모듈, 형식 및 멤버가 CLS 규격인지 여부를 표시할 수 있습니다. CLS 규격 어셈블리는 반드시 CLS 규격인 것으로 표시되어야 합니다. CLS 규격으로 표시되지 않은 어셈블리는 자동으로 CLS 규격이 아닌 것으로 간주됩니다. CLS 특성이 적용되지 않은 형식은 해당 형식이 정의된 어셈블리와 동일한 CLS 규격인 것으로 간주됩니다. 마찬가지로, CLS 특성이 적용되지 않은 멤버도 해당 멤버를 정의하는 형식과 동일한 CLS 규격인 것으로 간주됩니다. 특정 프로그램 요소의 포함 요소가 CLS 규격이 아닌 경우에는 해당 프로그램 요소를 CLS 규격으로 표시할 수 없습니다. CLSCompliantAttribute를 사용하는 방법은 이 항목의 끝에 나오는 예제에서 설명됩니다.
어셈블리, 모듈 및 형식의 일부가 CLS 규격이 아니더라도 다음 두 조건이 만족되면 이들 어셈블리, 모듈 또는 형식은 CLS 규격이 될 수 있습니다.
CLS 규격 클래스 라이브러리를 디자인하면, 해당 라이브러리는 여러 종류의 프로그래밍 언어에서 상호 운용될 수 있기 때문에 CLS 규격이 아닌 라이브러리 버전보다 더 많은 고객층에서 사용될 수 있습니다.
.NET Framework에서 제공하는 클래스 라이브러리는 CLS 규격입니다. 이 클래스 라이브러리에 대한 자세한 내용은 .NET Framework 클래스 라이브러리 참조를 참조하십시오.