MemberAttributes Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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é |
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
, Assembly
ou 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.