MemberAttributes Enum

Definitie

Definieert de kenmerk-id's van leden voor klasseleden.

public enum class MemberAttributes
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum MemberAttributes
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type MemberAttributes = 
Public Enum MemberAttributes
Overname
MemberAttributes
Kenmerken

Velden

Name Waarde Description
Abstract 1

Een abstract lid.

Final 2

Een lid dat niet kan worden overschreven in een afgeleide klasse.

Static 3

Een statisch lid. In Visual Basic is dit gelijk aan het trefwoord Shared.

Override 4

Een lid dat een basisklasselid overschrijft.

Const 5

Een constant lid.

ScopeMask 15

Een bereikmasker.

New 16

Een nieuw lid.

VTableMask 240

Een VTable-masker.

Overloaded 256

Een overbelast lid. Voor sommige talen, zoals Visual Basic, moeten overbelaste leden expliciet worden aangegeven.

Assembly 4096

Een lid dat toegankelijk is voor elke klasse binnen dezelfde assembly.

FamilyAndAssembly 8192

Een lid dat toegankelijk is binnen de klasse en afgeleide klassen in dezelfde assembly.

Family 12288

Een lid dat toegankelijk is binnen de familie van zijn klasse en afgeleide klassen.

FamilyOrAssembly 16384

Een lid dat toegankelijk is binnen de klasse, de afgeleide klassen in elke assembly en elke klasse in dezelfde assembly.

Private 20480

Een privélid.

Public 24576

Een openbaar lid.

AccessMask 61440

Een toegangsmasker.

Voorbeelden

In de volgende voorbeeldcode ziet u hoe u een CodeMemberPropertystring eigenschap definieert met get en set accessors.

// 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

Opmerkingen

De id's die in de MemberAttributes opsomming zijn gedefinieerd, kunnen worden gebruikt om het bereik en de toegangskenmerken van een klasselid aan te geven.

Note

Er is geen Virtual lidkenkenmerk. Een lid wordt virtueel gedeclareerd door de toegang tot het lid in te stellen op Openbaar (property1.Attributes = MemberAttributes.Public) zonder het op te geven als Definitief. De afwezigheid van de laatste vlag maakt lid virtual in C# (public virtual), overridable in Visual Basic (Public Overridable). Als u wilt voorkomen dat u het lid declareren als virtual of overridable, stelt u zowel de openbare als de definitieve vlaggen in de Attributes eigenschap in. Zie de Attributes eigenschap voor meer informatie over het instellen van lidkenmerken.

Note

Het patroon voor het instellen van de toegangsvlagmen (vlaggen met de termen Public, Privateof AssemblyFamily) is het maskeren van alle toegangsvlagmen met behulp van het AccessMask-masker en vervolgens de gewenste toegangsvlag instellen. De code-instructie voor het identificeren van een constructor (benoemd constructor1) als openbaar is constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;bijvoorbeeld. Als u de Attributes eigenschap rechtstreeks instelt op een toegangsvlag (bijvoorbeeld constructor1.Attributes = MemberAttributes.Public;) worden alle andere vlaggen gewist die kunnen worden ingesteld. Dit patroon moet ook worden gebruikt voor het instellen van de bereiktags (Abstract, Definitief, Statisch, Overschrijven of Const) met behulp van het ScopeMask-masker.

Van toepassing op

Zie ook