MemberAttributes Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define identificadores de atributos de membro para os membros da classe.
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
- Herança
- Atributos
Campos
| Name | Valor | Description |
|---|---|---|
| Abstract | 1 | Um membro abstracto. |
| Final | 2 | Um membro que não pode ser sobreposto numa classe derivada. |
| Static | 3 | Um membro estático. Em Visual Basic, isto equivale à palavra-chave |
| Override | 4 | Um membro que sobrepõe um membro da classe base. |
| Const | 5 | Um membro constante. |
| ScopeMask | 15 | Uma máscara de telescópio. |
| New | 16 | Um novo membro. |
| VTableMask | 240 | Uma máscara VTificável. |
| Overloaded | 256 | Um membro sobrecarregado. Algumas linguagens, como o Visual Basic, exigem que membros sobrecarregados sejam explicitamente indicados. |
| Assembly | 4096 | Um membro acessível a qualquer classe dentro da mesma assembleia. |
| FamilyAndAssembly | 8192 | Um membro acessível dentro da sua classe, e classes derivadas na mesma assembleia. |
| Family | 12288 | Um membro acessível dentro da família da sua classe e classes derivadas. |
| FamilyOrAssembly | 16384 | Um membro acessível dentro da sua classe, as suas classes derivadas em qualquer assembleia e qualquer classe na mesma assembleia. |
| Private | 20480 | Um membro privado. |
| Public | 24576 | Um membro público. |
| AccessMask | 61440 | Uma máscara de acesso. |
Exemplos
O seguinte exemplo de código demonstra o uso de a CodeMemberProperty para definir uma string propriedade com get acessórios 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
Observações
Os identificadores definidos na MemberAttributes enumeração podem ser usados para indicar o âmbito e os atributos de acesso de um membro da classe.
Note
Não existe qualquer Virtual atributo de membro. Um membro é declarado virtual ao definir o acesso do seu membro para Público (property1.Attributes = MemberAttributes.Public) sem o especificar como Final. A ausência da bandeira Final faz com que um membro virtual em C# (public virtual), overridable em Visual Basic (Public Overridable). Para evitar declarar o membro como virtual ou overridable, coloque ambas as bandeiras Pública e Final na Attributes propriedade. Consulte a Attributes propriedade para mais informações sobre a definição dos atributos dos membros.
Note
O padrão para definir as flags de acesso (flags que contêm os termos Public, Private, Assembly, ou Family) é mascarar todas as flags de acesso usando a máscara AccessMask e depois definir a flag de acesso desejada. 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 uma flag de acesso (por exemplo, constructor1.Attributes = MemberAttributes.Public;) apaga todas as outras flags que possam estar definidas. Este padrão deve também ser usado para definir os flags de âmbito (Abstrato, Final, Estático, Override ou Const) usando a máscara ScopeMask.