언어

MethodImplOptions 열거형

정의

메서드를 구현하는 방법에 대한 세부 정보를 정의하는 상수를 지정합니다.

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

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

필드

속성 값 Description
Unmanaged 4

메서드는 관리되지 않는 코드에서 구현됩니다.

NoInlining 8

메서드를 인라인할 수 없습니다. 인라인 처리는 메서드 호출이 메서드 본문으로 대체되는 최적화입니다.

ForwardRef 16

메서드가 선언되었지만 해당 구현은 다른 곳에서 제공됩니다.

Synchronized 32

메서드는 한 번에 하나의 스레드로만 실행할 수 있습니다. 정적 메서드는 형식을 잠그고 인스턴스 메서드는 인스턴스에 잠깁니다. 인스턴스 함수에서 하나의 스레드만 실행할 수 있으며 클래스의 정적 함수에서 하나의 스레드만 실행할 수 있습니다.

NoOptimization 64

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

PreserveSig 128

메서드 시그니처는 선언된 대로 정확하게 내보내집니다.

AggressiveInlining 256

가능한 경우 메서드를 인라인 처리해야 합니다.

이 특성을 불필요하게 사용하면 성능이 저하됩니다. 이 특성으로 인해 구현 제한이 발생하여 생성된 코드가 느려질 수 있습니다. 항상 성능을 측정하여 이 특성을 적용하는 것이 도움이 되도록 합니다.

AggressiveOptimization 512

이 메서드에는 항상 성능에 최적화되어야 하는 코드가 포함되어 있습니다.

이 특성을 사용하는 것은 거의 적절하지 않습니다. 이 특성을 적용하는 메서드는 계층화된 컴파일 의 첫 번째 계층을 무시하므로 계층화된 컴파일을 사용하는 최적화의 이점을 활용하지 않습니다. 이러한 최적화에는 초기화된 클래스를 기반으로 하는 동적 PGO 및 최적화가 포함됩니다. 이 특성을 사용하면 메모리 사용도 증가할 수 있습니다. 항상 성능을 측정하여 이 특성을 적용하는 것이 도움이 되도록 합니다.

SecurityMitigations 1024

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

InternalCall 4096

호출은 내부입니다. 즉, 공용 언어 런타임 내에서 구현되는 메서드를 호출합니다.

Async 8192

메서드가 런타임 관리 비동기 실행을 사용하게 지정합니다. 여기서 일시 중단 및 다시 시작은 컴파일러에서 생성된 비동기 상태 컴퓨터가 아닌 런타임에서 처리됩니다.

설명

이 열거형은 특성과 함께 MethodImplAttribute 사용됩니다.

비트 OR 연산자를 사용하여 여러 MethodImplOptions 값을 지정할 수 있습니다.

메모

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

적용 대상