다음을 통해 공유


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
특성

필드

AggressiveInlining 256

가능한 경우 메서드는 인라인되어야 합니다.

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

AggressiveOptimization 512

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

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

ForwardRef 16

이 메서드는 선언되지만 해당 구현은 다른 위치에서 제공됩니다.

InternalCall 4096

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

NoInlining 8

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

NoOptimization 64

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

PreserveSig 128

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

SecurityMitigations 1024

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

Synchronized 32

이 메서드는 한 번에 하나의 스레드에 의해서만 실행될 수 있습니다. 정적 메서드는 형식을 잠그지만 인스턴스 메서드는 인스턴스를 잠급니다. 어떤 인스턴스 함수에 대해서도 하나의 스레드만 실행될 수 있고, 어떤 클래스의 정적 함수에 대해서도 하나의 스레드만 실행될 수 있습니다.

Unmanaged 4

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

설명

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

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

참고

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

적용 대상