Ler em inglês

Compartilhar via


MethodAttributes Enumeração

Definição

Especifica sinalizadores para atributos de método. Esses sinalizadores são definidos no arquivo corhdr.h.

Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.

C#
[System.Flags]
public enum MethodAttributes
C#
[System.Flags]
[System.Serializable]
public enum MethodAttributes
C#
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum MethodAttributes
Herança
MethodAttributes
Atributos

Campos

Nome Valor Description
Abstract 1024

Indica que a classe não fornece uma implementação desse método.

Assembly 3

Indica que o método é acessível a qualquer classe desse assembly.

CheckAccessOnOverride 512

Indica que o método só pode ser substituído quando também está acessível.

FamANDAssem 2

Indica que o método é acessível apenas aos membros desse tipo e seus tipos derivados nesse assembly.

Family 4

Indica que o método é acessível somente aos membros dessa classe e suas classes derivadas.

FamORAssem 5

Indica que o método é acessível a classes derivadas de qualquer lugar, bem como a qualquer classe no assembly.

Final 32

Indica que o método não pode ser substituído.

HasSecurity 16384

Indica que o método tem segurança associada a ele. Sinalizador reservado somente para uso em runtime.

HideBySig 128

Indica que o método se oculta por nome e assinatura; caso contrário, somente pelo nome.

MemberAccessMask 7

Recupera informações sobre acessibilidade.

NewSlot 256

Indica que o método sempre obtém um slot novo no vtable.

PinvokeImpl 8192

Indica que a implementação do método é encaminhada por meio do PInvoke (Serviços de Invocação de Plataforma).

Private 1

Indica que o método é acessível somente à classe atual.

PrivateScope 0

Indica que o membro não pode ser referenciado.

Public 6

Indica que o método é acessível a qualquer objeto para o qual esse objeto esteja no escopo.

RequireSecObject 32768

Indica que o método chama outro método que contém o código de segurança. Sinalizador reservado somente para uso em runtime.

ReservedMask 53248

Indica um sinalizador reservado somente para uso em runtime.

ReuseSlot 0

Indica que o método reutilizará um slot existente no vtable. Esse é o comportamento padrão.

RTSpecialName 4096

Indica que o Common Language Runtime verifica a codificação de nome.

SpecialName 2048

Indica que o método é especial. O nome descreve como esse método é especial.

Static 16

Indica que o método é definido no tipo; caso contrário, será definido por instância.

UnmanagedExport 8

Indica que o método gerenciado é exportado por conversão para o código não gerenciado.

Virtual 64

Indica que o método é virtual.

VtableLayoutMask 256

Recupera atributos vtable.

Exemplos

O exemplo a seguir exibe os atributos do método especificado.

C#
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 = (int)fields[i].GetValue(null);
            if ((fieldvalue & iAttribValue) == fieldvalue)
            {
                Console.WriteLine(fields[i].Name);
            }
        }
    }
}

Aplica-se a

Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0