PropertyAttributes 列挙型

定義

プロパティに関連付けることができる属性を定義します。Defines the attributes that can be associated with a property. これらの属性値は corhdr.h で定義されています。These attribute values are defined in corhdr.h.

この列挙型には FlagsAttribute 属性があり、メンバー値ではビットごとの組み合わせを使用できます。

public enum class PropertyAttributes
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum PropertyAttributes
type PropertyAttributes = 
Public Enum PropertyAttributes
継承
PropertyAttributes
属性

フィールド

HasDefault 4096

プロパティが既定値を持つことを指定します。Specifies that the property has a default value.

None 0

プロパティに関連付ける属性がないことを指定します。Specifies that no attributes are associated with a property.

Reserved2 8192

予約済み。Reserved.

Reserved3 16384

予約済み。Reserved.

Reserved4 32768

予約済み。Reserved.

ReservedMask 62464

ランタイム専用に予約されているフラグを指定します。Specifies a flag reserved for runtime use only.

RTSpecialName 1024

メタデータ内部 API が名前のエンコーディングを確認することを指定します。Specifies that the metadata internal APIs check the name encoding.

SpecialName 512

プロパティが特別であることを指定します。プロパティが特別である理由は名前で説明します。Specifies that the property is special, with the name describing how the property is special.

次の例では、3つのPropertyAttributesプロパティをビルドし、列挙値を表示します。The following example builds three properties and displays the PropertyAttributes enumerated value. 読み取り専用プロパティには setter がないため、では変更できないことに注意してください。Caption = statement.Note that the read-only property has no setter and thus cannot be changed by.Caption = statement.

using namespace System;
using namespace System::Reflection;

// Define three properties: one read-write, one default,
// and one read only. 
// Define a read-write property.
public ref class Aproperty
{
private:
   String^ caption;

public:
   Aproperty()
      : caption( "A Default caption" )
   {}


   property String^ Caption 
   {
      String^ get()
      {
         return caption;
      }

      void set( String^ value )
      {
         if ( caption != value )
         {
            caption = value;
         }
      }

   }

};


// Define a default property.
public ref class Bproperty
{
private:
   String^ caption;

public:
   Bproperty()
      : caption( "B Default caption" )
   {}

public:
   property String^ Item
   {
      String^ get()
      {
         return "1";
      }

   }

   property String^ Caption 
   {
      String^ get()
      {
         return caption;
      }

      void set( String^ value )
      {
         if ( caption != value )
         {
            caption = value;
         }
      }

   }

};


// Define a read-only property.
public ref class Cproperty
{
private:
   String^ caption;

public:
   Cproperty()
      : caption( "C Default caption" )
   {}


   property String^ Caption 
   {
      String^ get()
      {
         return caption;
      }

   }

};

int main()
{
   Console::WriteLine( "\nReflection.PropertyAttributes" );
   
   // Determine whether a property exists, and change its value.
   Aproperty^ Mypropertya = gcnew Aproperty;
   Bproperty^ Mypropertyb = gcnew Bproperty;
   Cproperty^ Mypropertyc = gcnew Cproperty;
   Console::Write( "\n1. Mypropertya->Caption = {0}", Mypropertya->Caption );
   Console::Write( "\n1. Mypropertyb->Caption = {0}", Mypropertyb->Caption );
   Console::Write( "\n1. Mypropertyc->Caption = {0}", 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 = {0}", Mypropertya->Caption );
   Console::Write( "\n2. Mypropertyb->Caption = {0}", Mypropertyb->Caption );
   Console::Write( "\n2. Mypropertyc->Caption = {0}", 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- {0}", Myattributesa );
   Console::Write( "\nb- {0}", Myattributesb );
   Console::Write( "\nc- {0}", Myattributesc );
   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
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
Imports System.Reflection

' Make three properties, one read-write, one default,
' and one read-only. 
Public Class Aproperty
    ' Define a read-write property.
    Private myCaption As String = "A Default caption"

    Public Property Caption() As String
        Get
            Return myCaption
        End Get
        Set(ByVal Value As String)
            If myCaption <> value Then
                myCaption = value
            End If
        End Set
    End Property
End Class

Public Class Bproperty
    ' Define a default property.
    Private myCaption As String = "B Default caption"

    Default Public ReadOnly Property Item(ByVal index As Integer) As String
        Get
            Return "1"
        End Get
    End Property

    Public Property Caption() As String

        Get
            Return myCaption
        End Get
        Set(ByVal Value As String)
            If myCaption <> value Then
                myCaption = value
            End If
        End Set
    End Property
End Class

Public Class Cproperty
    ' Define a read-only property.
    Private myCaption As String = "C Default caption"

    Public ReadOnly Property Caption() As String
        Get
            Return myCaption
        End Get
        'No setting is allowed because this property is read-only.
    End Property
End Class


Class propertyattributesenum

    Public Shared Function Main() As Integer
        Console.WriteLine(ControlChars.CrLf & "Reflection.PropertyAttributes")

        ' Determine whether a property exists, and change its value.
        Dim Mypropertya As New Aproperty()
        Dim Mypropertyb As New Bproperty()
        Dim Mypropertyc As New Cproperty()

        Console.Write(ControlChars.CrLf & "1. Mypropertya.Caption = " & _
           Mypropertya.Caption)

        Console.Write(ControlChars.CrLf & "1. Mypropertyb.Caption = " & _
           Mypropertyb.Caption)

        Console.Write(ControlChars.CrLf & "1. Mypropertyc.Caption = " & _
           Mypropertyc.Caption)

        ' Only Mypropertya can be changed because 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(ControlChars.CrLf & ControlChars.CrLf & _
           "2. Mypropertya.Caption = " & Mypropertya.Caption)

        Console.Write(ControlChars.CrLf & "2. Mypropertyb.Caption = " & _
           Mypropertyb.Caption)

        Console.Write(ControlChars.CrLf + "2. Mypropertyc.Caption = " & _
           Mypropertyc.Caption)

        ' Get the PropertyAttributes Enumeration of the property.
        ' Get the type.
        Dim MyTypea As Type = Type.GetType("Aproperty")
        Dim MyTypeb As Type = Type.GetType("Bproperty")
        Dim MyTypec As Type = Type.GetType("Cproperty")

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

        ' Display the property attributes value.
        Console.Write(ControlChars.CrLf & ControlChars.CrLf & "a- " & _
           Myattributesa.ToString())

        Console.Write(ControlChars.CrLf & "b- " & Myattributesb.ToString())

        Console.Write(ControlChars.CrLf & "c- " & Myattributesc.ToString())
        Return 0
    End Function'    End Function
End Class

' 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

注釈

を取得PropertyAttributesするには、最初にTypeクラスを取得します。To get the PropertyAttributes, first get the class Type. から、 PropertyInfoを取得します。 TypeFrom the Type, get the PropertyInfo. から、 Attributesを取得します。 PropertyInfoFrom the PropertyInfo, get the Attributes.

列挙値は、メソッドに実装されている属性のビットごとの OR を表す数値です。The enumerated value is a number representing the bitwise OR of the attributes implemented on the method.

適用対象