MemberAttributes Enumerazione
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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 |
| 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.