Ler em inglês

Compartilhar via


PropertyAttributes Enumeração

Definição

Define os atributos que podem ser associados a uma propriedade. Esses valores de atributo são definidos em corhdr.h.

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

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

Campos

Nome Valor Description
HasDefault 4096

Especifica que a propriedade tem um valor padrão.

None 0

Especifica que nenhum atributo está associado a uma propriedade.

Reserved2 8192

Reservado.

Reserved3 16384

Reservado.

Reserved4 32768

Reservado.

ReservedMask 62464

Especifica um sinalizador reservado para uso apenas no runtime.

RTSpecialName 1024

Especifica que as APIs internas de metadados verificam a codificação de nome.

SpecialName 512

Especifica que a propriedade é especial, com o nome descrevendo como a propriedade é especial.

Exemplos

O exemplo a seguir cria três propriedades e exibe o PropertyAttributes valor enumerado. Observe que a propriedade somente leitura não tem nenhum setter e, portanto, não pode ser alterada por.Caption = statement.

C#
using System;
using System.Reflection;

 // Define three properties: one read-write, one default,
 // and one read only.
public class Aproperty
    // Define a read-write property.
{
    private string caption = "A Default caption";
    public string Caption
    {
        get{return caption;}
        set
        {
            if (caption != value){caption = value;}
        }
    }
}
public class Bproperty
    // Define a default property.
{
    private string caption  = "B Default caption";
    public string this [int index]
    {
        get {return "1";}
    }
    public string Caption
    {

        get{return caption;}
        set
        {
            if (caption != value){caption = value;}
        }
    }
}
public class Cproperty
    // Define a read-only property.
{
    private string caption = "C Default caption";
    public string Caption
    {
        get{return caption;}
        // No setting is allowed, because this is a read-only property.
    }
}

class propertyattributesenum
{
    public static int Main(string[] args)
    {
        Console.WriteLine("\nReflection.PropertyAttributes");

        // Determine whether a property exists, and change its value.
        Aproperty Mypropertya = new Aproperty();
        Bproperty Mypropertyb = new Bproperty();
        Cproperty Mypropertyc = new Cproperty();

        Console.Write("\n1. Mypropertya.Caption = " + Mypropertya.Caption );

        Console.Write("\n1. Mypropertyb.Caption = " + Mypropertyb.Caption );

        Console.Write("\n1. Mypropertyc.Caption = " + Mypropertyc.Caption );

        // Only Mypropertya can be changed, as Mypropertyb is read-only.
        Mypropertya.Caption = "A- This is changed.";
        Mypropertyb.Caption = "B- This is changed.";
        // Note that Mypropertyc is not changed because it is read only

        Console.Write("\n\n2. Mypropertya.Caption = " + Mypropertya.Caption );

        Console.Write("\n2. Mypropertyb.Caption = " + Mypropertyb.Caption );

        Console.Write("\n2. Mypropertyc.Caption = " + Mypropertyc.Caption );

        // Get the PropertyAttributes enumeration of the property.
        // Get the type.
        Type MyTypea = Type.GetType("Aproperty");
        Type MyTypeb = Type.GetType("Bproperty");
        Type MyTypec = Type.GetType("Cproperty");

        // Get the property attributes.
        PropertyInfo Mypropertyinfoa = MyTypea.GetProperty("Caption");
        PropertyAttributes Myattributesa = Mypropertyinfoa.Attributes;
        PropertyInfo Mypropertyinfob = MyTypeb.GetProperty("Item");
        PropertyAttributes Myattributesb = Mypropertyinfob.Attributes;
        PropertyInfo Mypropertyinfoc = MyTypec.GetProperty("Caption");
        PropertyAttributes Myattributesc = Mypropertyinfoc.Attributes;

        // Display the property attributes value.

        Console.Write("\n\na- " + Myattributesa.ToString());

        Console.Write("\nb- " + Myattributesb.ToString());

        Console.Write("\nc- " + Myattributesc.ToString());
        return 0;
    }
}

// This example displays the following output to the console
//
// Reflection.PropertyAttributes
//
// 1. Mypropertya.Caption = A Default caption
// 1. Mypropertyb.Caption = B Default caption
// 1. Mypropertyc.Caption = C Default caption
//
// 2. Mypropertya.Caption = A- This is changed.
// 2. Mypropertyb.Caption = B- This is changed.
// 2. Mypropertyc.Caption = C Default caption
//
// a- None
// b- None
// c- None

Comentários

Para obter o PropertyAttributes, primeiro obtenha a classe Type. TypeNo , obtenha o PropertyInfo. PropertyInfoNo , obtenha o Attributes.

O valor enumerado é um número que representa o OR bit a bit dos atributos implementados no método .

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