MemberAttributes Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert Memberattributebezeichner für Klassenmember.
public enum class MemberAttributes
public enum MemberAttributes
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum MemberAttributes
type MemberAttributes =
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type MemberAttributes =
Public Enum MemberAttributes
- Vererbung
- Attribute
Felder
| Name | Wert | Beschreibung |
|---|---|---|
| Abstract | 1 | Ein abstraktes Element. |
| Final | 2 | Ein Element, das in einer abgeleiteten Klasse nicht außer Kraft gesetzt werden kann. |
| Static | 3 | Ein statisches Element. In Visual Basic entspricht dies dem |
| Override | 4 | Ein Element, das ein Basisklassenelement überschreibt. |
| Const | 5 | Ein konstantes Element. |
| ScopeMask | 15 | Ein Bereichsformat. |
| New | 16 | Ein neues Mitglied. |
| VTableMask | 240 | Eine VTable-Maske. |
| Overloaded | 256 | Ein überladenes Element. Einige Sprachen, z. B. Visual Basic, erfordern, dass überladene Member explizit angegeben werden. |
| Assembly | 4096 | Ein Element, auf das für jede Klasse innerhalb derselben Assembly zugegriffen werden kann. |
| FamilyAndAssembly | 8192 | Ein Element, auf das innerhalb seiner Klasse zugegriffen werden kann, und abgeleitete Klassen in derselben Assembly. |
| Family | 12288 | Ein Mitglied, das innerhalb der Familie seiner Klasse und abgeleiteter Klassen zugänglich ist. |
| FamilyOrAssembly | 16384 | Ein Element, auf das innerhalb seiner Klasse, der abgeleiteten Klassen in jeder Assembly und jeder Klasse in derselben Assembly zugegriffen werden kann. |
| Private | 20480 | Ein privates Mitglied. |
| Public | 24576 | Ein öffentliches Mitglied. |
| AccessMask | 61440 | Eine Zugriffsmaske. |
Beispiele
Der folgende Beispielcode veranschaulicht die Verwendung einer CodeMemberProperty Eigenschaft zum Definieren einer string Eigenschaft mit get und set Accessoren.
// Declares a property of type String named StringProperty.
CodeMemberProperty property1 = new CodeMemberProperty();
property1.Name = "StringProperty";
property1.Type = new CodeTypeReference("System.String");
property1.Attributes = MemberAttributes.Public;
property1.GetStatements.Add( new CodeMethodReturnStatement( new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "testStringField") ) );
property1.SetStatements.Add( new CodeAssignStatement( new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "testStringField"), new CodePropertySetValueReferenceExpression()));
// A C# code generator produces the following source code for the preceeding example code:
// public virtual string StringProperty
// {
// get
// {
// return this.testStringField;
// }
// set
// {
// this.testStringField = value;
// }
// }
' Declares a property of type String named StringProperty.
Dim property1 As New CodeMemberProperty()
property1.Name = "StringProperty"
property1.Type = New CodeTypeReference("System.String")
property1.Attributes = MemberAttributes.Public
property1.GetStatements.Add(New CodeMethodReturnStatement(New CodeFieldReferenceExpression(New CodeThisReferenceExpression(), "testStringField")))
property1.SetStatements.Add(New CodeAssignStatement(New CodeFieldReferenceExpression(New CodeThisReferenceExpression(), "testStringField"), New CodePropertySetValueReferenceExpression()))
' A Visual Basic code generator produces the following source code for the preceeding example code:
' Public Overridable Property StringProperty() As String
' Get
' Return Me.testStringField
' End Get
' Set(ByVal Value As String)
' Me.testStringField = value
' End Set
' End Property
Hinweise
Die in der MemberAttributes Enumeration definierten Bezeichner können verwendet werden, um den Bereich und die Zugriffsattribute eines Klassenmembes anzugeben.
Hinweis
Es ist kein Virtual Member-Attribut vorhanden. Ein Mitglied wird virtuell deklariert, indem er seinen Mitgliedszugriff auf "Öffentlich" (property1.Attributes = MemberAttributes.Public) festlegt, ohne es als abgeschlossen anzugeben. Das Fehlen der endgültigen Kennzeichnung macht ein Mitglied virtual in C# (public virtual), overridable in Visual Basic (Public Overridable). Um das Deklarieren des Elements als virtual oder overridable, legen Sie sowohl die Kennzeichnung "Öffentlich" als auch "Endgültig" in der Attributes Eigenschaft fest. Weitere Informationen zum Festlegen von Memberattributen finden Sie in der Attributes Eigenschaft.
Hinweis
Das Muster zum Festlegen der Zugriffskennzeichnungen (Flags mit den Begriffen Public, Private, Assemblyoder Family) besteht darin, alle Zugriffskennzeichnungen mithilfe des AccessMask-Masks zu maskieren und dann das gewünschte Zugriffsflagge festzulegen. Beispielsweise ist die Code-Anweisung, um einen Konstruktor (benannt constructor1) als öffentlich constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;zu identifizieren. Wenn Sie die Attributes Eigenschaft direkt auf eine Zugriffskennzeichnung festlegen (z. B. ), werden alle anderen Flags gelöscht, constructor1.Attributes = MemberAttributes.Public;die möglicherweise festgelegt werden. Dieses Muster sollte auch zum Festlegen der Bereichskennzeichnungen (Abstract, Final, Static, Override oder Const) mithilfe des ScopeMask-Mask verwendet werden.