using System;
using System.Runtime.InteropServices;
namespace System.Reflection
{
/// Specifies flags for the attributes of a method implementation.
// Token: 0x0200024E RID: 590
[ComVisible(true)]
[Serializable]
public enum MethodImplAttributes
{
/// Specifies flags about code type.
// Token: 0x04000A95 RID: 2709
CodeTypeMask = 3,
/// Specifies that the method implementation is in Microsoft intermediate language (MSIL).
// Token: 0x04000A96 RID: 2710
IL = 0,
/// Specifies that the method implementation is native.
// Token: 0x04000A97 RID: 2711
Native,
/// Specifies that the method implementation is in Optimized Intermediate Language (OPTIL).
// Token: 0x04000A98 RID: 2712
OPTIL,
/// Specifies that the method implementation is provided by the runtime.
// Token: 0x04000A99 RID: 2713
Runtime,
/// Specifies whether the method is implemented in managed or unmanaged code.
// Token: 0x04000A9A RID: 2714
ManagedMask,
/// Specifies that the method is implemented in unmanaged code.
// Token: 0x04000A9B RID: 2715
Unmanaged = 4,
/// Specifies that the method is implemented in managed code.
// Token: 0x04000A9C RID: 2716
Managed = 0,
/// Specifies that the method is not defined.
// Token: 0x04000A9D RID: 2717
ForwardRef = 16,
/// Specifies that the method signature is exported exactly as declared.
// Token: 0x04000A9E RID: 2718
PreserveSig = 128,
/// Specifies an internal call.
// Token: 0x04000A9F RID: 2719
InternalCall = 4096,
/// Specifies that the method is single-threaded through the body. Static methods (Shared in Visual Basic) lock on the type, whereas instance methods lock on the instance. You can also use the C# lock statement or the Visual Basic Lock function for this purpose.
// Token: 0x04000AA0 RID: 2720
Synchronized = 32,
/// Specifies that the method cannot be inlined.
// Token: 0x04000AA1 RID: 2721
NoInlining = 8,
/// Specifies a range check value.
// Token: 0x04000AA2 RID: 2722
MaxMethodImplVal = 65535
}
}