MethodImplOptions 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
메서드 구현 방법에 대한 세부 정보를 정의하는 상수를 지정합니다.
이 열거형은 멤버 값의 비트 조합을 지원합니다.
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
- 상속
- 특성
필드
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
마찬가지로 인스턴스 또는 형식에 대한 잠금은 공용 형식에는 권장되지 않습니다. 이로 인해 교착 상태 또는 기타 동기화 문제가 발생할 수 있습니다.
적용 대상
.NET