System.Reflection.MethodAttributes Enumeration

Assembly: Mscorlib.dll
Namespace: System.Reflection
Summary
Specifies flags for method attributes. These flags are defined in the corhdr.h file.
C# Syntax:
[Serializable]
public enum MethodAttributes
Example
 using System;
 using System.Reflection;
 
 class AttributesSample
 {
    public void Mymethod ( int int1m, out string str2m, ref string str3m)
    {
       str2m = "in Mymethod";
    }
 
    public static int Main(string[] args)
    {      
       Console.WriteLine ("Reflection.MethodBase.Attributes Sample");
       
       // Get our type
       Type MyType = Type.GetType("AttributesSample");
 
       // Get the method Mymethod on our type
       MethodBase Mymethodbase = MyType.GetMethod("Mymethod");
 
       // Print out the method
       Console.WriteLine("Mymethodbase = " + Mymethodbase);
 
       // Get the MethodAttribute enumerated value
       MethodAttributes Myattributes = Mymethodbase.Attributes;
 
       // print out the flags set
       PrintAttributes( typeof( System.Reflection.MethodAttributes ), (int) Myattributes );
       return 0;
    }
 
 
    public static void PrintAttributes( Type attribType, int iAttribValue )
    {
       if ( ! attribType.IsEnum ) { Console.WriteLine( "This type is not an enum" ); return; }
 
       FieldInfo[] fields = attribType.GetFields(BindingFlags.Public | BindingFlags.Static);
       for ( int i = 0; i < fields.Length; i++ )
       {
          int fieldvalue = (Int32)fields[i].GetValue(null);
          if ( (fieldvalue & iAttribValue) == fieldvalue )
          {
             Console.WriteLine( "\t" + fields[i].Name );
          }
       }
    }
 }
 /*
 Output:
 
 Reflection.MethodBase.Attributes Sample
 Mymethodbase = Void Mymethod (Int32, System.String ByRef, System.String ByRef)
         PrivateScope
         FamANDAssem
         Family
         Public 
         HideBySig 
         ReuseSlot
 */

    
See also:
System.Reflection Namespace

System.Reflection.MethodAttributes Member List:

Public Fields
Abstract Indicates that the class does not provide an implementation of this method.
Assembly Indicates that the method is accessible to any class of this assembly.
FamANDAssem Indicates that the method is accessible to members of this type and its derived types that are in this assembly only.
Family Indicates that the method is accessible only to members of this class and its derived classes.
FamORAssem Indicates that the method is accessible to derived classes anywhere, as well as to any class in the assembly.
Final Indicates that the method cannot be overridden.
HasSecurity Indicates that the method has security associated with it. Reserved flag for runtime use only.
HideBySig Indicates that the method hides by name and signature; otherwise, by name only.
MemberAccessMask Retrieves accessibility information.
NewSlot Indicates that the method always gets a new slot in the vtable.
PinvokeImpl Indicates that the method implementation is forwarded through PInvoke (Platform Invocation Services).
Private Indicates that the method is accessible only to the current class.
PrivateScope Indicates that the member cannot be referenced.
Public Indicates that the method is accessible to any object for which this object is in scope.
RequireSecObject Indicates that the method calls another method containing security code. Reserved flag for runtime use only.
ReservedMask Indicates a reserved flag for runtime use only.
ReuseSlot Indicates that the method will reuse an existing slot in the vtable. This is the default behavior.
RTSpecialName Indicates that the common language runtime checks the name encoding.
SpecialName Indicates that the method is special. The name describes how this method is special.
Static Indicates that the method is defined on the type; otherwise, it is defined per instance.
UnmanagedExport Indicates that the managed method is exported by thunk to unmanaged code.
Virtual Indicates that the method is virtual.
VtableLayoutMask Retrieves vtable attributes.

Hierarchy:


Top of page

Copyright (c) 2002 Microsoft Corporation. All rights reserved.