PropertyAttributes-Enumeration
Definiert die Attribute, die einer Eigenschaft zugeordnet werden können. Diese Attributwerte werden in corhdr.h definiert.
Diese Enumeration verfügt über ein FlagsAttribute -Attribut, das die bitweise Kombination der Memberwerte zulässt.
Namespace: System.Reflection
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<SerializableAttribute> _
<FlagsAttribute> _
<ComVisibleAttribute(True)> _
Public Enumeration PropertyAttributes
'Usage
Dim instance As PropertyAttributes
[SerializableAttribute]
[FlagsAttribute]
[ComVisibleAttribute(true)]
public enum PropertyAttributes
[SerializableAttribute]
[FlagsAttribute]
[ComVisibleAttribute(true)]
public enum class PropertyAttributes
/** @attribute SerializableAttribute() */
/** @attribute FlagsAttribute() */
/** @attribute ComVisibleAttribute(true) */
public enum PropertyAttributes
SerializableAttribute
FlagsAttribute
ComVisibleAttribute(true)
public enum PropertyAttributes
Member
Membername | Beschreibung | |
---|---|---|
HasDefault | Gibt an, dass die Eigenschaft einen Standardwert besitzt. | |
None | Gibt an, dass einer Eigenschaft keine Attribute zugeordnet sind. | |
Reserved2 | Reserviert. | |
Reserved3 | Reserviert. | |
Reserved4 | Reserviert. | |
ReservedMask | Gibt ein Flag an, das der Laufzeit vorbehalten ist. | |
RTSpecialName | Gibt an, dass die internen APIs für Metadaten die Namenscodierung überprüfen. | |
SpecialName | Gibt an, dass es sich um eine besondere Eigenschaft handelt, wobei die Besonderheit des Namens beschrieben wird. |
Hinweise
Um PropertyAttributes abzurufen, rufen Sie zunächst den Type der Klasse ab. Über Type rufen Sie PropertyInfo ab. Über PropertyInfo rufen Sie Attributes ab.
Dieser Enumerationswert ist eine Zahl, die die bitweise OR-Operation der für die Methode implementierten Attribute darstellt.
Beispiel
Im folgenden Beispiel werden drei Eigenschaften erstellt, und es wird der PropertyAttributes-Enumerationswert angezeigt. Beachten Sie, dass die schreibgeschützte Eigenschaft über keine Set-Methode verfügt und daher nicht durch Caption = statement
geändert werden kann.
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
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;
}
}
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;
}
import System.*;
import 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";
/** @property
*/
public String get_Caption()
{
return caption ;
} //get_Caption
/** @property
*/
public void set_Caption(String value)
{
if (caption != value) {
caption = value;
}
} //set_Caption
} //AProperty
public class BProperty
{
// Define a default property.
private String caption = "B Default caption";
/** @property
*/
public String get_Item(int index)
{
return "1" ;
} //get_Item
/** @property
*/
public String get_Caption()
{
return caption ;
} //get_Caption
/** @property
*/
public void set_Caption (String value)
{
if (caption != value) {
caption = value;
}
} //set_Caption
} //BProperty
public class CProperty
{
// Define a read-only property.
private String caption = "C Default caption";
/** @property
*/
public String get_Caption()
{
return caption ;
// No setting is allowed, because this is a read-only property.
} //get_Caption
} //CProperty
class PropertyAttributesEnum
{
public static void 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.get_Caption()));
Console.Write(("\n1. Mypropertyb.Caption = "
+ myPropertyB.get_Caption()));
Console.Write(("\n1. Mypropertyc.Caption = "
+ myPropertyC.get_Caption()));
// Only myPropertyA can be changed, as myPropertyB is read-only.
myPropertyA.set_Caption("A- This is changed.");
myPropertyB.set_Caption("B- This is changed.");
// Note that myPropertyC is not changed because it is read only
Console.Write(("\n\n2. Mypropertya.Caption = "
+ myPropertyA.get_Caption()));
Console.Write(("\n2.Mypropertyb.Caption = "
+ myPropertyB.get_Caption()));
Console.Write(("\n2. Mypropertyc.Caption = "
+ myPropertyC.get_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.get_Attributes();
PropertyInfo myPropertyInfoB = myTypeB.GetProperty("Item");
PropertyAttributes myAttributesB = myPropertyInfoB.get_Attributes();
PropertyInfo myPropertyInfoC = myTypeC.GetProperty("Caption");
PropertyAttributes myAttributesC = myPropertyInfoC.get_Attributes();
// Display the property attributes value.
Console.Write(("\n\nA- " + myAttributesA.ToString()));
Console.Write(("\nB-" + myAttributesB.ToString()));
Console.Write(("\nC- " + myAttributesC.ToString()));
} //main
} //PropertyAttributesEnum
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0