다음을 통해 공유


CLSCompliantAttribute 클래스

정의

프로그램 요소가 CLS(공용 언어 사양)을 준수하는지 여부를 나타냅니다. 이 클래스는 상속될 수 없습니다.

public ref class CLSCompliantAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
public sealed class CLSCompliantAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
[System.Serializable]
public sealed class CLSCompliantAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class CLSCompliantAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)>]
type CLSCompliantAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)>]
[<System.Serializable>]
type CLSCompliantAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CLSCompliantAttribute = class
    inherit Attribute
Public NotInheritable Class CLSCompliantAttribute
Inherits Attribute
상속
CLSCompliantAttribute
특성

예제

다음 예제에서는 전체 어셈블리에 적용합니다 CLSCompliantAttribute .

using System;
    [assembly: CLSCompliant(true)]

다음 선언은 CLS에 형식 UInt32 이 지정되지 않았기 때문에 CLS 준수 경고를 생성합니다.

public int SetValue(UInt32 value);

선언이 표시된 CLSCompliantAttribute경우 컴파일러 경고 또는 오류가 생성되지 않습니다.

[CLSCompliant(false)]
 public int SetValue(UInt32 value);

설명

CLSCompliantAttribute 특성은 특정 프로그램 요소가 .NET을 대상으로 하는 모든 언어에서 지원해야 하는 기능을 정의하는 CLS(공용 언어 사양)를 준수하는지 여부를 나타내는 데 사용됩니다. CLS 규정 준수는 주로 .NET을 대상으로 하는 모든 언어로 라이브러리에 액세스할 수 있도록 하려는 라이브러리 개발자에게 중요합니다. 자세한 내용은 언어 독립성 및 Language-Independent 구성 요소를 참조하세요.

어셈블리, 모듈, 클래스, 구조체, 열거형, 생성자, 메서드, 속성, 필드, 이벤트, 인터페이스, 대리자, 매개 변수 및 반환 값과 같은 프로그램 요소에 특성을 적용 CLSCompliantAttribute 할 수 있습니다. 그러나 CLS 준수 개념은 멤버 서명의 일부가 아니라 어셈블리, 모듈, 형식 및 형식의 멤버에만 의미가 있습니다. 따라서 CLSCompliantAttribute 매개 변수 또는 반환 값 프로그램 요소에 적용할 때 무시됩니다.

프로그램 요소에 적용되지 않는 CLSCompliantAttribute 경우 기본적으로 다음을 수행합니다.

  • 어셈블리가 CLS 규격이 아닙니다.

  • 이 형식은 바깥쪽 형식 또는 어셈블리가 CLS 규격인 경우에만 CLS 규격입니다.

  • 형식의 멤버는 CLS 규격인 경우에만 CLS 규격입니다.

어셈블리가 CLS 규격으로 표시된 경우 CLS 규격이 아닌 어셈블리에서 공개적으로 노출된 형식은 인수를 false 사용하여 표시 CLSCompliantAttribute 해야 합니다. 마찬가지로 클래스가 CLS 규격으로 표시된 경우 CLS 규격이 아닌 모든 멤버를 개별적으로 표시해야 합니다. 모든 비규격 멤버는 해당 CLS 규격 대안을 제공해야 합니다.

어셈블리 또는 모듈에 적용되는 특성은 C# using (ImportsVisual Basic) 절 뒤와 코드 앞에 있어야 합니다.

특성을 사용 하는 방법에 대 한 자세한 내용은 참조 하세요. 특성합니다.

참고

현재 Microsoft Visual Basic 컴파일러는 의도적으로 CLS 규정 준수 경고를 생성하지 않지만 컴파일러의 이후 릴리스에서 해당 경고를 실행합니다.

생성자

CLSCompliantAttribute(Boolean)

표시된 프로그램 요소가 CLS 규격인지 여부를 나타내는 부울 값을 사용하여 CLSCompliantAttribute 클래스의 인스턴스를 초기화합니다.

속성

IsCompliant

표시된 프로그램 요소가 CLS 규격인지 여부를 나타내는 부울 값을 가져옵니다.

TypeId

파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다.

(다음에서 상속됨 Attribute)

메서드

Equals(Object)

이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다.

(다음에서 상속됨 Attribute)
GetHashCode()

이 인스턴스의 해시 코드를 반환합니다.

(다음에서 상속됨 Attribute)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
IsDefaultAttribute()

파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다.

(다음에서 상속됨 Attribute)
Match(Object)

파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.

(다음에서 상속됨 Attribute)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).

(다음에서 상속됨 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다.

(다음에서 상속됨 Attribute)

적용 대상

추가 정보