Freigeben über


MemberAttributes Enumeration

Definition

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
MemberAttributes
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 Shared Schlüsselwort.

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.

Gilt für:

Weitere Informationen