MemberAttributes Enum
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
- 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 |
| 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.