PropertyAttributes Wyliczenie

Definicja

Definiuje atrybuty, które mogą być skojarzone z właściwością. Te wartości atrybutów są definiowane w pliku corhdr.h.

To wyliczenie obsługuje bitową kombinację jego wartości składowych.

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
Dziedziczenie
PropertyAttributes
Atrybuty

Pola

Nazwa Wartość Opis
HasDefault 4096

Określa, że właściwość ma wartość domyślną.

None 0

Określa, że żadne atrybuty nie są skojarzone z właściwością.

Reserved2 8192

Zarezerwowany.

Reserved3 16384

Zarezerwowany.

Reserved4 32768

Zarezerwowany.

ReservedMask 62464

Określa flagę zarezerwowaną tylko do użytku w czasie wykonywania.

RTSpecialName 1024

Określa, że wewnętrzne interfejsy API metadanych sprawdzają kodowanie nazw.

SpecialName 512

Określa, że właściwość jest specjalna, z nazwą opisującą sposób, w jaki właściwość jest specjalna.

Przykłady

Poniższy przykład tworzy trzy właściwości i wyświetla PropertyAttributes wyliczone wartości. Należy pamiętać, że właściwość tylko do odczytu nie ma ustawiania i dlatego nie można jej zmienić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

Uwagi

Aby uzyskać klasę PropertyAttributes, najpierw pobierz klasę Type. W pliku Typepobierz element PropertyInfo. W pliku PropertyInfopobierz element Attributes.

Wyliczone wartości to liczba reprezentująca bitowe OR atrybutów zaimplementowanych w metodzie .

Dotyczy

Produkt Wersje
.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