Skip to content

Latest commit

 

History

History
29 lines (28 loc) · 1.79 KB

ii.23.1.10-flags-for-methods-methodattributes.md

File metadata and controls

29 lines (28 loc) · 1.79 KB

II.23.1.10 Flags for methods [MethodAttributes]

Flag Value Description
MemberAccessMask 0x0007 These 3 bits contain one of the following values:
CompilerControlled 0x0000 Member not referenceable
Private 0x0001 Accessible only by the parent type
FamANDAssem 0x0002 Accessible by sub-types only in this Assembly
Assem 0x0003 Accessibly by anyone in the Assembly
Family 0x0004 Accessible only by type and sub-types
FamORAssem 0x0005 Accessibly by sub-types anywhere, plus anyone in assembly
Public 0x0006 Accessibly by anyone who has visibility to this scope
Static 0x0010 Defined on type, else per instance
Final 0x0020 Method cannot be overridden
Virtual 0x0040 Method is virtual
HideBySig 0x0080 Method hides by name+sig, else just by name
VtableLayoutMask 0x0100 Use this mask to retrieve vtable attributes. This bit contains one of the following values:
ReuseSlot 0x0000 Method reuses existing slot in vtable
NewSlot 0x0100 Method always gets a new slot in the vtable
Strict 0x0200 Method can only be overriden if also accessible
Abstract 0x0400 Method does not provide an implementation
SpecialName 0x0800 Method is special
Interop attributes    
PInvokeImpl 0x2000 Implementation is forwarded through PInvoke
UnmanagedExport 0x0008 Reserved: shall be zero for conforming implementations
Additional flags    
RTSpecialName 0x1000 CLI provides 'special' behavior, depending upon the name of the method
HasSecurity 0x4000 Method has security associate with it
RequireSecObject 0x8000 Method calls another method containing security code.