次の方法で共有


PropertyAttributes 列挙体

プロパティに関連付けることができる属性を定義します。これらの属性値は corhdr.h で定義されています。

この列挙体には、メンバ値をビットごとに演算するための FlagsAttribute 属性が含まれています。

<Flags>
<Serializable>
Public Enum PropertyAttributes
[C#]
[Flags]
[Serializable]
public enum PropertyAttributes
[C++]
[Flags]
[Serializable]
__value public enum PropertyAttributes
[JScript]
public
   Flags
 Serializable
enum PropertyAttributes

解説

PropertyAttributes を取得するには、最初に Type クラスを取得します。そして、その Type から PropertyInfo を取得します。最後に、 PropertyInfo から Attributes を取得します。

列挙値は、メソッドに実装されている属性をビットごとの OR 演算によって組み合わせて表す数値です。

メンバ

メンバ名 説明
HasDefault

.NET Compact Framework でもサポート。

プロパティが既定値を持つことを指定します。 4096
None

.NET Compact Framework でもサポート。

プロパティに関連付ける属性がないことを指定します。 0
Reserved2

.NET Compact Framework でもサポート。

予約済み。 8192
Reserved3

.NET Compact Framework でもサポート。

予約済み。 16384
Reserved4

.NET Compact Framework でもサポート。

予約済み。 32768
ReservedMask

.NET Compact Framework でもサポート。

ランタイム専用に予約されているフラグを指定します。 62464
RTSpecialName

.NET Compact Framework でもサポート。

メタデータ内部 API が名前のエンコーディングを確認することを指定します。 1024
SpecialName

.NET Compact Framework でもサポート。

プロパティが特別であることを指定します。プロパティが特別である理由は名前で説明します。 512

使用例

[Visual Basic, C#, C++] 3 つのプロパティをビルドして、 PropertyAttributes 列挙値を表示する例を次に示します。読み取り専用プロパティには setter がないため、 .Caption = statement では変更できません。

 
Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic

' 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 Class

[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;
    }
}

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::Reflection;

// Define three properties: one read-write, one default,
// and one read only. 
public __gc class Aproperty  
// Define a read-write property.
{
private:
    String* caption;
public:
    Aproperty() : caption(S"A Default caption") {}
    __property String* get_Caption() {
        return caption;
    }
    __property void set_Caption(String* value) {
        if (caption != value){
            caption = value;
        }
    }
};

public __gc class Bproperty  
// Define a default property.
{
private:
    String* caption;
public:
    Bproperty() : caption(S"B Default caption") {}
    __property String* get_Item (int index) {
        return S"1";
    }
    __property String* get_Caption() {
        return caption;
    }
    __property void set_Caption(String* value) {
        if (caption != value){
            caption = value;
        }
    }
};

public __gc class Cproperty  
// Define a read-only property.
{
private:
    String* caption;
public:
    Cproperty() : caption(S"C Default caption") {}
    __property String* get_Caption() {
        return caption;
    }
};

int main()
{
    Console::WriteLine(S"\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(S"\n1. Mypropertya->Caption = {0}", Mypropertya->Caption );

    Console::Write(S"\n1. Mypropertyb->Caption = {0}", Mypropertyb->Caption );

    Console::Write(S"\n1. Mypropertyc->Caption = {0}", Mypropertyc->Caption );

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

    Console::Write(S"\n\n2. Mypropertya->Caption = {0}", Mypropertya->Caption );

    Console::Write(S"\n2.Mypropertyb->Caption = {0}", Mypropertyb->Caption );

    Console::Write(S"\n2. Mypropertyc->Caption = {0}", Mypropertyc->Caption );

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

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

    // Display the property attributes value.

    Console::Write(S"\n\na- {0}", __box(Myattributesa));

    Console::Write(S"\nb-{0}", __box(Myattributesb));

    Console::Write(S"\nc- {0}", __box(Myattributesc));
    return 0;
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Reflection

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

System.Reflection 名前空間