Partilhar via


MemberAttributes Enumeração

Definição

Define identificadores de atributo de membro para membros da 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
Herança
MemberAttributes
Atributos

Campos

Nome Valor Description
Abstract 1

Um membro abstrato.

Final 2

Um membro que não pode ser substituído em uma classe derivada.

Static 3

Um membro estático. No Visual Basic, isso é equivalente à Shared palavra-chave.

Override 4

Um membro que substitui um membro de classe base.

Const 5

Um membro constante.

ScopeMask 15

Uma máscara de escopo.

New 16

Um novo membro.

VTableMask 240

Uma máscara de VTable.

Overloaded 256

Um membro sobrecarregado. Alguns idiomas, como o Visual Basic, exigem que membros sobrecarregados sejam indicados explicitamente.

Assembly 4096

Um membro acessível a qualquer classe dentro do mesmo assembly.

FamilyAndAssembly 8192

Um membro acessível dentro de sua classe e classes derivadas no mesmo assembly.

Family 12288

Um membro acessível dentro da família de sua classe e classes derivadas.

FamilyOrAssembly 16384

Um membro acessível dentro de sua classe, suas classes derivadas em qualquer assembly e qualquer classe no mesmo assembly.

Private 20480

Um membro privado.

Public 24576

Um membro público.

AccessMask 61440

Uma máscara de acesso.

Exemplos

O código de exemplo a seguir demonstra o uso de um CodeMemberProperty para definir uma string propriedade com get e set acessadores.

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

Comentários

Os identificadores definidos na MemberAttributes enumeração podem ser usados para indicar o escopo e os atributos de acesso de um membro de classe.

Observação

Não há nenhum Virtual atributo de membro. Um membro é declarado virtual definindo seu acesso de membro como Público (property1.Attributes = MemberAttributes.Public) sem especificá-lo como Final. A ausência do sinalizador Final torna um membro virtual em C# (public virtual), overridable no Visual Basic (Public Overridable). Para evitar declarar o membro como virtual ou overridable, defina os sinalizadores Público e Final na Attributes propriedade. Consulte a Attributes propriedade para obter mais informações sobre como definir atributos de membro.

Observação

O padrão para definir os sinalizadores de acesso (sinalizadores que contêm os termosPublic, Privateou AssemblyFamily) é mascarar todos os sinalizadores de acesso usando a máscara accessMask e, em seguida, definir o sinalizador de acesso desejado. Por exemplo, a instrução de código para identificar um construtor (nomeado constructor1) como público é constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;. Definir a Attributes propriedade diretamente para um sinalizador de acesso (por exemplo, constructor1.Attributes = MemberAttributes.Public;) apaga todos os outros sinalizadores que podem ser definidos. Esse padrão também deve ser usado para definir os sinalizadores de escopo (Abstract, Final, Static, Override ou Const) usando a máscara ScopeMask.

Aplica-se a

Confira também