Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Enumeración MethodAttributes

 

Publicado: octubre de 2016

Especifica las marcas de los atributos del método. Estas marcas se definen en el archivo corhdr.h.

Esta enumeración tiene un atributo FlagsAttribute que permite una combinación bit a bit de sus valores de miembro.

Espacio de nombres:   System.Reflection
Ensamblado:  mscorlib (en mscorlib.dll)

[SerializableAttribute]
[FlagsAttribute]
[ComVisibleAttribute(true)]
public enum MethodAttributes

Nombre de miembroDescripción
Abstract

Indica que la clase no proporciona una implementación de este método.

Assembly

Indica que el método es accesible a cualquier clase de este ensamblado.

CheckAccessOnOverride

Indica que el método solo puede ser invalido cuando también es accesible.

FamANDAssem

Indica que el método es accesible a los miembros de este tipo y sus tipos derivados que están sólo en este ensamblado.

Family

Indica que el método es accesible sólo a los miembros de esta clase y sus clases derivadas.

FamORAssem

Indica que el método es accesible para las clases derivadas en cualquier lugar, así como a cualquier clase en el ensamblado.

Final

Indica que no se puede invalidar el método.

HasSecurity

Indica que el método tiene seguridad asociada a él. Utiliza indicador reservado para el tiempo de ejecución.

HideBySig

Indica que el método se oculta por nombre y firma; de lo contrario, sólo por nombre.

MemberAccessMask

Recupera información de accesibilidad.

NewSlot

Indica que el método siempre obtiene una nueva ranura en vtable.

PinvokeImpl

Indica que la implementación del método se reenvía a través de PInvoke (servicios de invocación de plataforma).

Private

Indica que el método es accesible sólo a la clase actual.

PrivateScope

Indica que no se haga referencia al miembro.

Public

Indica que el método es accesible para cualquier objeto para el que este objeto está en el ámbito.

RequireSecObject

Indica que el método llama a otro método que contiene código de seguridad. Utiliza indicador reservado para el tiempo de ejecución.

ReservedMask

Muestra un indicador reservado para uso exclusivo de tiempo de ejecución.

ReuseSlot

Indica que el método siempre reutilizará una ranura existente en la tabla vtable. Éste es el comportamiento predeterminado.

RTSpecialName

Indica que common language runtime comprueba la codificación de nombres.

SpecialName

Indica que el método es especial. El nombre describe cómo este método es especial.

Static

Indica que el método está definido en el tipo; de lo contrario, se define por instancia.

UnmanagedExport

Indica que el método administrado se exporta mediante código thunk a código no administrado.

Virtual

Indica que el método es virtual.

VtableLayoutMask

Recupera los atributos de vtable.

El ejemplo siguiente muestra los atributos del método especificado.

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 the type of the chosen class.
        Type MyType = Type.GetType("AttributesSample");

        // Get the method Mymethod on the type.
        MethodBase Mymethodbase = MyType.GetMethod("Mymethod");

        // Display the method name and signature.
        Console.WriteLine("Mymethodbase = " + Mymethodbase);

        // Get the MethodAttribute enumerated value.
        MethodAttributes Myattributes = Mymethodbase.Attributes;

        // Display the flags that are 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(fields[i].Name);
            }
        }
    }
}

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: