MemberAttributes Enum

Definition

Definierar medlemsattributidentifierare för klassmedlemmar.

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
Arv
MemberAttributes
Attribut

Fält

Name Värde Description
Abstract 1

En abstrakt medlem.

Final 2

En medlem som inte kan åsidosättas i en härledd klass.

Static 3

En statisk medlem. I Visual Basic motsvarar detta nyckelordet Shared.

Override 4

En medlem som åsidosätter en basklassmedlem.

Const 5

En konstant medlem.

ScopeMask 15

En omfångsmask.

New 16

En ny medlem.

VTableMask 240

En VTable-mask.

Overloaded 256

En överbelastad medlem. Vissa språk, till exempel Visual Basic, kräver att överlagrade medlemmar uttryckligen anges.

Assembly 4096

En medlem som är tillgänglig för alla klasser i samma sammansättning.

FamilyAndAssembly 8192

En medlem som är tillgänglig i sin klass och härledda klasser i samma sammansättning.

Family 12288

En medlem som är tillgänglig i familjen för sin klass och härledda klasser.

FamilyOrAssembly 16384

En medlem som är tillgänglig i sin klass, dess härledda klasser i alla sammansättningar och alla klasser i samma sammansättning.

Private 20480

En privat medlem.

Public 24576

En offentlig medlem.

AccessMask 61440

En åtkomstmask.

Exempel

Följande exempelkod visar hur du använder en CodeMemberProperty för att definiera en string egenskap med get och set accessorer.

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

Kommentarer

Identifierarna som definierats i MemberAttributes uppräkningen kan användas för att ange omfångs- och åtkomstattribut för en klassmedlem.

Note

Det finns inget Virtual medlemsattribut. En medlem deklareras som virtuell genom att ställa in medlemsåtkomsten till Offentlig (property1.Attributes = MemberAttributes.Public) utan att ange den som Slutlig. Avsaknaden av flaggan Final gör en medlem virtual i C# (public virtual), overridable i Visual Basic (Public Overridable). Om du vill undvika att deklarera medlemmen som virtual eller overridableanger du både de offentliga och slutgiltiga flaggorna Attributes i egenskapen. Mer information om hur du anger medlemsattribut finns i Attributes egenskapen.

Note

Mönstret för att ange åtkomstflaggor (flaggor som innehåller termerna Public, Private, Assemblyeller Family) är att maskera alla åtkomstflaggor med hjälp av AccessMask-masken och sedan ange önskad åtkomstflagga. Kodsatsen för att identifiera en konstruktor (med namnet constructor1) som offentlig är constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;till exempel . Om du ställer in egenskapen Attributes direkt på en åtkomstflagga (till exempel constructor1.Attributes = MemberAttributes.Public;) raderas alla andra flaggor som kan anges. Det här mönstret bör också användas för att ange omfångsflaggor (abstrakt, slutgiltig, statisk, åsidosättning eller nackdelar) med hjälp av Masken ScopeMask.

Gäller för

Se även