MethodImplAttributes MethodImplAttributes MethodImplAttributes MethodImplAttributes Enum

정의

메서드 구현의 특성에 대한 플래그를 지정합니다.Specifies flags for the attributes of a method implementation.

이 열거형에는 멤버 값의 비트 조합을 허용하는 FlagsAttribute 특성이 있습니다.

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

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

필드

AggressiveInlining AggressiveInlining AggressiveInlining AggressiveInlining 256

가능한 경우 메서드를 인라인하도록 지정합니다.Specifies that the method should be inlined wherever possible.

AggressiveOptimization AggressiveOptimization AggressiveOptimization AggressiveOptimization 512

가능한 경우 메서드를 최적화하도록 지정합니다.Specifies that the method should be optimized whenever possible.

CodeTypeMask CodeTypeMask CodeTypeMask CodeTypeMask 3

코드 형식에 대한 플래그를 지정합니다.Specifies flags about code type.

ForwardRef ForwardRef ForwardRef ForwardRef 16

메서드가 정의되지 않도록 지정합니다.Specifies that the method is not defined.

IL IL IL IL 0

메서드 구현이 MSIL(Microsoft intermediate language)임을 지정합니다.Specifies that the method implementation is in Microsoft intermediate language (MSIL).

InternalCall InternalCall InternalCall InternalCall 4096

내부 호출을 지정합니다.Specifies an internal call.

Managed Managed Managed Managed 0

메서드가 관리되는 코드로 구현되도록 지정합니다.Specifies that the method is implemented in managed code.

ManagedMask ManagedMask ManagedMask ManagedMask 4

메서드가 관리되는 코드로 구현되는지 또는 관리되지 않는 코드로 구현되는지를 지정합니다.Specifies whether the method is implemented in managed or unmanaged code.

MaxMethodImplVal MaxMethodImplVal MaxMethodImplVal MaxMethodImplVal 65535

범위 확인 값을 지정합니다.Specifies a range check value.

Native Native Native Native 1

메서드 구현이 네이티브임을 지정합니다.Specifies that the method implementation is native.

NoInlining NoInlining NoInlining NoInlining 8

메서드를 인라인될 수 없도록 지정합니다.Specifies that the method cannot be inlined.

NoOptimization NoOptimization NoOptimization NoOptimization 64

메서드가 가능한 코드 생성 문제를 디버그할 때 JIT(just-in-time) 컴파일러 또는 네이티브 코드 생성에 의해 최적화되지 않도록 지정합니다(Ngen.exe 참조).Specifies that the method is not optimized by the just-in-time (JIT) compiler or by native code generation (see Ngen.exe) when debugging possible code generation problems.

OPTIL OPTIL OPTIL OPTIL 2

메서드 구현이 OPTIL(Optimized Intermediate Language)임을 지정합니다.Specifies that the method implementation is in Optimized Intermediate Language (OPTIL).

PreserveSig PreserveSig PreserveSig PreserveSig 128

메서드 시그니처가 선언된 대로 정확하게 내보내지도록 지정합니다.Specifies that the method signature is exported exactly as declared.

Runtime Runtime Runtime Runtime 3

메서드 구현이 런타임에서 제공되도록 지정합니다.Specifies that the method implementation is provided by the runtime.

SecurityMitigations SecurityMitigations SecurityMitigations SecurityMitigations 1024

JIT 컴파일러가 사용자 정의 System.Runtime.CompilerServices.SecurityMitigationsAttribute 등 보안 완화 특성을 찾아야 하는지 지정합니다.Specifies that the JIT compiler should look for security mitigation attributes, such as the user-defined System.Runtime.CompilerServices.SecurityMitigationsAttribute. 찾게 되면 JIT 컴파일러는 관련 보안 완화를 적용합니다.If found, the JIT compiler applies any related security mitigations. .NET Framework 4.8부터 사용할 수 있습니다.Available starting with .NET Framework 4.8.

Synchronized Synchronized Synchronized Synchronized 32

메서드가 본문 내에서 단일 스레드임을 지정합니다.Specifies that the method is single-threaded through the body. static 메서드(Visual Basic의Shared )는 형식을 잠그지만 인스턴스 메서드는 인스턴스를 잠급니다.Static methods (Shared in Visual Basic) lock on the type, whereas instance methods lock on the instance. 이를 위해 C# lock 문 또는 Visual Basic SyncLock 문을 사용할 수도 있습니다.You can also use the C# lock statement or the Visual Basic SyncLock statement for this purpose.

Unmanaged Unmanaged Unmanaged Unmanaged 4

메서드가 관리되는 않는 코드로 구현되도록 지정합니다.Specifies that the method is implemented in unmanaged code.

설명

특성은 비트 or 연산을 사용 하 여 다음과 같이 결합 됩니다.The attributes are combined using the bitwise OR operation as follows:

코드 구현 마스크:Code implementation masks:

  • CodeTypeMask

  • IL

  • Native

  • OPTIL

  • Runtime

관리 되는 마스크:Managed masks:

  • ManagedMask

  • Unmanaged

  • Managed

구현 정보 및 interop 마스크:Implementation information and interop masks:

  • ForwardRef

  • PreserveSig

  • InternalCall

  • Synchronized

  • NoInlining

  • NoOptimization

  • MaxMethodImplVal

  • SecurityMitigations .NET Framework 4.8부터 사용할 수 있습니다.SecurityMitigations (Available starting with .NET Framework 4.8.)

참고

사용자 고유의 코드가 public 형식 및 인스턴스에 대해 잠금을 사용할 수 있기 Synchronized 때문에 플래그와 마찬가지로 인스턴스 또는 형식에 대 한 잠금은 public 형식에 대해 권장 되지 않습니다.Locking on the instance or on the type, as with the Synchronized flag, is not recommended for public types, because code other than your own can take locks on public types and instances. 이로 인해 교착 상태 또는 기타 동기화 문제가 발생할 수 있습니다.This might cause deadlocks or other synchronization problems.

적용 대상

추가 정보