Condividi tramite


MemberAttributes Enumerazione

Definizione

Definisce gli identificatori dell'attributo membro per i membri della classe.

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
Ereditarietà
MemberAttributes
Attributi

Campi

Nome Valore Descrizione
Abstract 1

Membro astratto.

Final 2

Membro che non può essere sottoposto a override in una classe derivata.

Static 3

Membro statico. In Visual Basic equivale alla Shared parola chiave .

Override 4

Membro che esegue l'override di un membro della classe di base.

Const 5

Membro costante.

ScopeMask 15

Maschera di ambito.

New 16

Nuovo membro.

VTableMask 240

Maschera VTable.

Overloaded 256

Membro di overload. Alcuni linguaggi, ad esempio Visual Basic, richiedono che i membri di overload siano indicati in modo esplicito.

Assembly 4096

Membro accessibile a qualsiasi classe all'interno dello stesso assembly.

FamilyAndAssembly 8192

Membro accessibile all'interno della relativa classe e classi derivate nello stesso assembly.

Family 12288

Membro accessibile all'interno della famiglia della classe e delle classi derivate.

FamilyOrAssembly 16384

Membro accessibile all'interno della relativa classe, classi derivate in qualsiasi assembly e qualsiasi classe nello stesso assembly.

Private 20480

Membro privato.

Public 24576

Membro pubblico.

AccessMask 61440

Maschera di accesso.

Esempio

Il codice di esempio seguente illustra l'uso di un CodeMemberProperty oggetto per definire una string proprietà con get le funzioni di accesso e set .

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

Commenti

Gli identificatori definiti nell'enumerazione possono essere usati per indicare l'ambito MemberAttributes e gli attributi di accesso di un membro della classe.

Annotazioni

Non esiste alcun Virtual attributo membro. Un membro viene dichiarato virtuale impostando l'accesso membro a Public (property1.Attributes = MemberAttributes.Public) senza specificarlo come Finale. L'assenza del flag Final rende un membro virtual in C# (public virtual), overridable in Visual Basic (Public Overridable). Per evitare di dichiarare il membro come virtual o overridable, impostare sia i flag Public che Final nella Attributes proprietà . Per altre informazioni sull'impostazione degli attributi dei membri, vedere la Attributes proprietà .

Annotazioni

Il modello per impostare i flag di accesso (flag contenenti i termini Public, Private, Assemblyo Family) consiste nel mascherare tutti i flag di accesso usando la maschera Di accesso e quindi impostare il flag di accesso desiderato. Ad esempio, l'istruzione di codice per identificare un costruttore (denominato constructor1) come pubblico è constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;. Impostando la Attributes proprietà direttamente su un flag di accesso (ad esempio, constructor1.Attributes = MemberAttributes.Public;) vengono cancellati tutti gli altri flag che potrebbero essere impostati. Questo modello deve essere usato anche per impostare i flag di ambito (Abstract, Final, Static, Override o Const) usando la maschera ScopeMask.

Si applica a

Vedi anche