MemberAttributes MemberAttributes MemberAttributes MemberAttributes Enum

Definition

Definiert Bezeichner für Memberattribute von Klassenmembern.Defines member attribute identifiers for class members.

public enum class MemberAttributes
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum MemberAttributes
type MemberAttributes = 
Public Enum MemberAttributes
Vererbung
MemberAttributesMemberAttributesMemberAttributesMemberAttributes
Attribute

Felder

Abstract Abstract Abstract Abstract 1

Ein abstrakter Member.An abstract member.

AccessMask AccessMask AccessMask AccessMask 61440

Eine Zugriffsmaske.An access mask.

Assembly Assembly Assembly Assembly 4096

Ein Member, auf den alle Klassen in der gleichen Assembly zugreifen können.A member that is accessible to any class within the same assembly.

Const Const Const Const 5

Ein konstanter Member.A constant member.

Family Family Family Family 12288

Ein Member, auf den aus der Familie seiner Klasse und abgeleiteter Klassen zugegriffen werden kann.A member that is accessible within the family of its class and derived classes.

FamilyAndAssembly FamilyAndAssembly FamilyAndAssembly FamilyAndAssembly 8192

Ein Member, auf den aus seiner Klasse und aus abgeleiteten Klassen in der gleichen Assembly zugegriffen werden kann.A member that is accessible within its class, and derived classes in the same assembly.

FamilyOrAssembly FamilyOrAssembly FamilyOrAssembly FamilyOrAssembly 16384

Ein Member, auf den aus seiner Klasse, aus abgeleiteten Klassen in einer beliebigen Assembly und aus allen Klassen in der gleichen Assembly zugegriffen werden kann.A member that is accessible within its class, its derived classes in any assembly, and any class in the same assembly.

Final Final Final Final 2

Ein Member, der in einer abgeleiteten Klasse nicht überschrieben werden kann.A member that cannot be overridden in a derived class.

New New New New 16

Ein new-Member.A new member.

Overloaded Overloaded Overloaded Overloaded 256

Ein überladener Member.An overloaded member. Bei einigen Sprachen wie Visual Basic müssen überladene Member explizit angegeben werden.Some languages, such as Visual Basic, require overloaded members to be explicitly indicated.

Override Override Override Override 4

Ein Member, der einen Basisklassenmember überschreibt.A member that overrides a base class member.

Private Private Private Private 20480

Ein private-Member.A private member.

Public Public Public Public 24576

Ein public-Member.A public member.

ScopeMask ScopeMask ScopeMask ScopeMask 15

Eine Gültigkeitsbereichsmaske.A scope mask.

Static Static Static Static 3

Ein statischer Member.A static member. Dies entspricht dem Shared-Schlüsselwort in Visual Basic.In Visual Basic, this is equivalent to the Shared keyword.

VTableMask VTableMask VTableMask VTableMask 240

Eine VTable-Maske.A VTable mask.

Beispiele

Der folgende Beispielcode veranschaulicht die Verwendung von CodeMemberProperty , um eine string Eigenschaft mit get - set und-Accessoren zu definieren.The following example code demonstrates use of a CodeMemberProperty to define a string property with get and set accessors.

// Declares a property of type String named StringProperty.
CodeMemberProperty^ property1 = gcnew CodeMemberProperty;
property1->Name = "StringProperty";
property1->Type = gcnew CodeTypeReference( "System.String" );
property1->Attributes = MemberAttributes::Public;
property1->GetStatements->Add( gcnew CodeMethodReturnStatement( gcnew CodeFieldReferenceExpression( gcnew CodeThisReferenceExpression,"testStringField" ) ) );
property1->SetStatements->Add( gcnew CodeAssignStatement( gcnew CodeFieldReferenceExpression( gcnew CodeThisReferenceExpression,"testStringField" ),gcnew 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.
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 die Attribute des Bereichs und des Zugriffs auf einen Klassenmember anzugeben.The identifiers defined in the MemberAttributes enumeration can be used to indicate the scope and access attributes of a class member.

Hinweis

Es ist kein Virtual Member-Attribut vorhanden.There is no Virtual member attribute. Ein Member wird als virtuell deklariert, indem der Member Zugriff auf Publicproperty1.Attributes = MemberAttributes.Public() festgelegt wird, ohne ihn als endgültig anzugeben.A member is declared virtual by setting its member access to Public (property1.Attributes = MemberAttributes.Public) without specifying it as Final. Wenn das abschließende Flag nicht vorhanden ist virtual , overridable wird in C# Visual Basicpublic virtual(Public Overridable) ein Member in () erstellt.The absence of the Final flag makes a member virtual in C# (public virtual), overridable in Visual Basic (Public Overridable). Um zu vermeiden, dass der virtual Member overridableals oder deklariert wird, legen Sie die öffentlichen und Attributes abschließenden Flags in der-Eigenschaft fest.To avoid declaring the member as virtual or overridable, set both the Public and Final flags in the Attributes property. Weitere Informationen Attributes zum Festlegen von Element Attributen finden Sie unter der-Eigenschaft.See the Attributes property for more information on setting member attributes.

Hinweis

Das Muster für das Festlegen der Zugriffsflags (Flags Public Assembly, Privatedie die Begriffe Family,, oder enthalten) besteht darin, alle Zugriffsflags mithilfe der accessMask-Maske zu maskieren und dann das gewünschte Zugriffsflag festzulegen.The pattern for setting the access flags (flags containing the terms Public, Private, Assembly, or Family) is to mask out all access flags using the AccessMask mask and then set the desired access flag. Die Code Anweisung zum Identifizieren eines Konstruktors (mit dem Namen constructor1) als Public ist constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;beispielsweise.For example, the code statement to identify a constructor (named constructor1) as public is constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;. Wenn Sie Attributes die Eigenschaft direkt auf ein Zugriffsflag ( constructor1.Attributes = MemberAttributes.Public;z. b.) festlegen, werden alle anderen Flags gelöscht, die festgelegt werden können.Setting the Attributes property directly to an access flag (for example, constructor1.Attributes = MemberAttributes.Public;) erases all other flags that might be set. Dieses Muster sollte auch zum Festlegen der bereichsflags (Abstract, Final, static, override oder Konstanten) mithilfe der scopemask-Maske verwendet werden.This pattern should also be used for setting the scope flags (Abstract, Final, Static, Override or Const) using the ScopeMask mask.

Gilt für:

Siehe auch