MemberAttributes Énumération

Définition

Définit les identificateurs des attributs de membre pour les membres de 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
Héritage
MemberAttributes
Attributs

Champs

Abstract 1

Membre abstract.

AccessMask 61440

Masque d'accès.

Assembly 4096

Membre qui est accessible à n'importe quelle classe dans le même assembly.

Const 5

Membre de constante.

Family 12288

Membre qui est accessible dans la famille de sa classe et des classes dérivées.

FamilyAndAssembly 8192

Membre qui est accessible dans sa classe et dans les classes dérivées du même assembly.

FamilyOrAssembly 16384

Membre qui est accessible dans sa classe, ses classes dérivées dans n'importe quel assembly et n'importe quelle classe dans le même assembly.

Final 2

Membre qui ne peut pas être substitué dans une classe dérivée.

New 16

Membre new.

Overloaded 256

Membre surchargé. Dans certains langages, tels que Visual Basic, les membres surchargés doivent être explicitement indiqués.

Override 4

Membre qui substitue un membre de la classe de base.

Private 20480

Membre private.

Public 24576

Membre public.

ScopeMask 15

Masque de portée.

Static 3

Membre statique. En Visual Basic, ce membre est l'équivalent du mot clé Shared.

VTableMask 240

Masque VTable.

Exemples

L’exemple de code suivant illustre l’utilisation d’un CodeMemberProperty pour définir une string propriété avec get des accesseurs et set .

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

Remarques

Les identificateurs définis dans l’énumération MemberAttributes peuvent être utilisés pour indiquer l’étendue et les attributs d’accès d’un membre de classe.

Notes

Il n’existe aucun Virtual attribut membre. Un membre est déclaré virtuel en définissant son accès membre sur Public (property1.Attributes = MemberAttributes.Public) sans le spécifier comme Final. L’absence de l’indicateur Final fait d’un membre virtual en C# (public virtual), overridable en Visual Basic (Public Overridable). Pour éviter de déclarer le membre en tant que virtual ou overridable, définissez les indicateurs Public et Final dans la Attributes propriété . Pour plus d’informations sur la définition des attributs de membre, consultez la Attributes propriété .

Notes

Le modèle de définition des indicateurs d’accès (indicateurs contenant les termes Public, Private, Assemblyou Family) consiste à masquer tous les indicateurs d’accès à l’aide du masque AccessMask, puis à définir l’indicateur d’accès souhaité. Par exemple, l’instruction de code permettant d’identifier un constructeur (nommé constructor1) comme public est constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;. Le fait de définir la Attributes propriété directement sur un indicateur d’accès (par exemple, constructor1.Attributes = MemberAttributes.Public;) efface tous les autres indicateurs qui peuvent être définis. Ce modèle doit également être utilisé pour définir les indicateurs d’étendue (Abstract, Final, Static, Override ou Const) à l’aide du masque ScopeMask.

S’applique à

Voir aussi