Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

MethodAttributes Enumeration

Specifies flags for method attributes. These flags are defined in the corhdr.h file.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

Namespace:  System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

'Declaration
<FlagsAttribute> _
<ComVisibleAttribute(True)> _
Public Enumeration MethodAttributes

Member nameDescription
Supported by Silverlight for Windows PhoneSupported by Xbox 360MemberAccessMaskRetrieves accessibility information.
Supported by Silverlight for Windows PhoneSupported by Xbox 360PrivateScopeIndicates that the member cannot be referenced.
Supported by Silverlight for Windows PhoneSupported by Xbox 360PrivateIndicates that the method is accessible only to the current class.
Supported by Silverlight for Windows PhoneSupported by Xbox 360FamANDAssemIndicates that the method is accessible to members of this type and its derived types that are in this assembly only.
Supported by Silverlight for Windows PhoneSupported by Xbox 360AssemblyIndicates that the method is accessible to any class of this assembly.
Supported by Silverlight for Windows PhoneSupported by Xbox 360FamilyIndicates that the method is accessible only to members of this class and its derived classes.
Supported by Silverlight for Windows PhoneSupported by Xbox 360FamORAssemIndicates that the method is accessible to derived classes anywhere, as well as to any class in the assembly.
Supported by Silverlight for Windows PhoneSupported by Xbox 360PublicIndicates that the method is accessible to any object for which this object is in scope.
Supported by Silverlight for Windows PhoneSupported by Xbox 360StaticIndicates that the method is defined on the type; otherwise, it is defined per instance.
Supported by Silverlight for Windows PhoneSupported by Xbox 360FinalIndicates that the method cannot be overridden.
Supported by Silverlight for Windows PhoneSupported by Xbox 360VirtualIndicates that the method is virtual.
Supported by Silverlight for Windows PhoneSupported by Xbox 360HideBySigIndicates that the method hides by name and signature; otherwise, by name only.
Supported by Silverlight for Windows PhoneSupported by Xbox 360CheckAccessOnOverrideIndicates that the method can only be overridden when it is also accessible.
Supported by Silverlight for Windows PhoneSupported by Xbox 360VtableLayoutMaskRetrieves vtable attributes.
Supported by Silverlight for Windows PhoneSupported by Xbox 360ReuseSlotIndicates that the method will reuse an existing slot in the vtable. This is the default behavior.
Supported by Silverlight for Windows PhoneSupported by Xbox 360NewSlotIndicates that the method always gets a new slot in the vtable.
Supported by Silverlight for Windows PhoneSupported by Xbox 360AbstractIndicates that the class does not provide an implementation of this method.
Supported by Silverlight for Windows PhoneSupported by Xbox 360SpecialNameIndicates that the method is special. The name describes how this method is special.
Supported by Silverlight for Windows PhoneSupported by Xbox 360PinvokeImplIndicates that the method implementation is forwarded through PInvoke (Platform Invocation Services).
Supported by Silverlight for Windows PhoneSupported by Xbox 360UnmanagedExportIndicates that the managed method is exported by thunk to unmanaged code.
Supported by Silverlight for Windows PhoneSupported by Xbox 360RTSpecialNameIndicates that the common language runtime checks the name encoding.
Supported by Silverlight for Windows PhoneSupported by Xbox 360ReservedMaskIndicates a reserved flag for runtime use only.
Supported by Silverlight for Windows PhoneSupported by Xbox 360HasSecurityIndicates that the method has security associated with it. Reserved flag for runtime use only.
Supported by Silverlight for Windows PhoneSupported by Xbox 360RequireSecObjectIndicates that the method calls another method containing security code. Reserved flag for runtime use only.

The following example displays some of the attributes of an example method, and an attribute of a property accessor.


Imports System.Reflection

Class Example

   Protected Overridable Friend Sub MyMethod(ByVal a As Integer, ByRef b As String)
      b = "in MyMethod"
   End Sub 

   Public ReadOnly Property P() As Integer
      Get
         Return 42
      End Get
   End Property

   Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock) 

      outputBlock.Text &= "Reflection.MethodBase.Attributes Sample" & vbLf & vbLf

      ' Get the method and its attributes.
      Dim mb As MethodBase = GetType(Example).GetMethod("MyMethod", _
                                 BindingFlags.NonPublic Or BindingFlags.Instance)
      Dim attribs As MethodAttributes = mb.Attributes

      ' Display the method name and signature.
      outputBlock.Text &= "MethodBase.ToString(): " & mb.ToString() & vbLf

      ' Method access is a number, not a flag.
      Dim memberAccess As String = ""
      Select Case attribs And MethodAttributes.MemberAccessMask
         Case MethodAttributes.PrivateScope:
            memberAccess = "PrivateScope - member is not referenceable"
         Case MethodAttributes.Private:
            memberAccess = "Private"
         Case MethodAttributes.FamANDAssem:
            memberAccess = "FamANDAssem - derived types that are also restricted to the assembly" & _
               vbLf & "               This access level cannot be created with Visual Basic." & vbLf         
         Case MethodAttributes.Assembly:
            memberAccess = "Assembly - Friend"
         Case MethodAttributes.Family:
            memberAccess = "Family - Protected"
         Case MethodAttributes.FamORAssem:
            memberAccess = "FamORAssem - Protected Friend"
         Case MethodAttributes.Public:
            memberAccess = "Public"
      End Select

      outputBlock.Text &= "Access level: " & memberAccess & vbLf

      Dim vtable As MethodAttributes = attribs And MethodAttributes.VtableLayoutMask
      If vtable = MethodAttributes.ReuseSlot
         outputBlock.Text &= "Method will reuse an existing slot in the vtable." & vbLf
      Else
         outputBlock.Text &= "Method always gets a new slot in the vtable." & vbLf
      End If

      If (attribs And MethodAttributes.Virtual) <> 0 Then
         outputBlock.Text &= "Method is overridable." & vbLf
      Else
         outputBlock.Text &= "Method cannot be overridden." & vbLf
      End If

      Dim propertyGetter As MethodInfo = _
         GetType(Example).GetProperty("P").GetGetMethod()
      If 0 <> (propertyGetter.Attributes And MethodAttributes.SpecialName) Then
         outputBlock.Text &= vbLf & _
            String.Format("Property accessor '{0}' has a special name." & vbLf, _
            propertyGetter)
      End If
   End Sub 
End Class 

' This code produces output similar to the following:
'
'Reflection.MethodBase.Attributes Sample
'MethodBase.ToString(): Void MyMethod(Int32, System.String ByRef, System.String.ByRef)
'Access level: FamORAssem - Protected Friend
'Method will reuse an existing slot in the vtable.
'Method is overridable.
'
'Property accessor 'Int32 get_P()' has a special name.


Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions

Show:
© 2017 Microsoft