MethodImplAttributes 열거형

정의

메서드 구현의 특성에 대한 플래그를 지정합니다.

이 열거형은 멤버 값의 비트 조합을 지원합니다.

이 API는 제품 인프라를 지원하며 코드에서 직접 사용되지 않습니다.

public enum class MethodImplAttributes
public enum MethodImplAttributes
[System.Flags]
[System.Serializable]
public enum MethodImplAttributes
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum MethodImplAttributes
type MethodImplAttributes = 
[<System.Flags>]
[<System.Serializable>]
type MethodImplAttributes = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MethodImplAttributes = 
Public Enum MethodImplAttributes
상속
MethodImplAttributes
특성

필드

Name Description
IL 0

메서드 구현이 MSIL(Microsoft 중간 언어)로 지정합니다.

Managed 0

메서드가 관리 코드에서 구현되도록 지정합니다.

Native 1

메서드 구현이 네이티브임을 지정합니다.

OPTIL 2

메서드 구현이 OPTIL(Optimized Intermediate Language)임을 지정합니다.

CodeTypeMask 3

코드 형식에 대한 플래그를 지정합니다.

Runtime 3

메서드 구현이 런타임에서 제공되도록 지정합니다.

ManagedMask 4

메서드가 관리 코드에서 구현되는지 아니면 관리되지 않는 코드에서 구현되는지를 지정합니다.

Unmanaged 4

메서드가 관리되지 않는 코드에서 구현되도록 지정합니다.

NoInlining 8

메서드를 인라인 처리할 수 없게 지정합니다.

ForwardRef 16

메서드가 정의되지 않도록 지정합니다.

Synchronized 32

메서드가 본문을 통해 단일 스레드되도록 지정합니다. 정적 메서드(Visual Basic 경우 Shared)는 형식을 잠그고 인스턴스 메서드는 인스턴스를 잠급니다. 이 용도로 C# lock 문 또는 Visual Basic SyncLock 문 사용할 수도 있습니다.

NoOptimization 64

가능한 코드 생성 문제를 디버깅할 때 JIT(Just-In-Time) 컴파일러 또는 네이티브 코드 생성( Ngen.exe참조)에 의해 메서드가 최적화되지 않도록 지정합니다.

PreserveSig 128

메서드 시그니처가 선언된 대로 정확하게 내보내지 않도록 지정합니다.

AggressiveInlining 256

가능한 경우 메서드를 인라인 처리해야 되도록 지정합니다.

AggressiveOptimization 512

가능하면 메서드를 최적화해야 하며,

SecurityMitigations 1024

이 멤버는 나중에 사용하도록 예약되어 있습니다. .NET Framework 4.8에서 도입되었습니다.

InternalCall 4096

내부 호출을 지정합니다.

Async 8192
MaxMethodImplVal 65535

범위 검사 값을 지정합니다.

설명

특성은 다음과 같이 비트 OR 연산을 사용하여 결합됩니다.

코드 구현 마스크:

  • CodeTypeMask

  • IL

  • Native

  • OPTIL

  • Runtime

관리되는 마스크:

  • ManagedMask

  • Unmanaged

  • Managed

구현 정보 및 interop 마스크:

  • ForwardRef

  • PreserveSig

  • InternalCall

  • Synchronized

  • NoInlining

  • NoOptimization

  • MaxMethodImplVal

  • SecurityMitigations(.NET Framework 4.8부터 사용 가능)

메모

사용자 고유의 코드가 공용 형식 및 인스턴스에 대한 잠금을 수행할 수 있으므로 플래그와 Synchronized 마찬가지로 인스턴스 또는 형식에 대한 잠금은 공용 형식에는 권장되지 않습니다. 이로 인해 교착 상태 또는 기타 동기화 문제가 발생할 수 있습니다.

적용 대상

추가 정보