MemberAttributes Перечисление

Определение

Определяет идентификаторы атрибута элемента для элементов класса.Defines member attribute identifiers for class members.

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
Наследование
MemberAttributes
Атрибуты

Поля

Abstract 1

Абстрактный элемент.An abstract member.

AccessMask 61440

Маска доступа.An access mask.

Assembly 4096

Элемент, доступный для любого класса в одной сборке.A member that is accessible to any class within the same assembly.

Const 5

Постоянный элемент.A constant member.

Family 12288

Элемент, доступный в семействе своего класса и производных классах.A member that is accessible within the family of its class and derived classes.

FamilyAndAssembly 8192

Элемент, доступный в своем классе и производных классах в одной сборке.A member that is accessible within its class, and derived classes in the same assembly.

FamilyOrAssembly 16384

Элемент, доступный в своем классе, производных классах в любой сборке и любом классе в одной сборке.A member that is accessible within its class, its derived classes in any assembly, and any class in the same assembly.

Final 2

Элемент, который не может быть переопределен в производном классе.A member that cannot be overridden in a derived class.

New 16

Новый элемент.A new member.

Overloaded 256

Перегруженный элемент.An overloaded member. В некоторых языках, например в Visual Basic, необходимо явно указывать перегруженные члены.Some languages, such as Visual Basic, require overloaded members to be explicitly indicated.

Override 4

Элемент, переопределяющий элемент базового класса.A member that overrides a base class member.

Private 20480

Закрытый элемент.A private member.

Public 24576

Открытый элемент.A public member.

ScopeMask 15

Маска области.A scope mask.

Static 3

Статический элемент.A static member. (Эквивалентно ключевому слову Shared в Visual Basic).In Visual Basic, this is equivalent to the Shared keyword.

VTableMask 240

Маска VTable.A VTable mask.

Примеры

В следующем примере кода показано использование класса CodeMemberProperty для определения string свойства с помощью get set методов доступа и.The following example code demonstrates use of a CodeMemberProperty to define a string property with get and set accessors.

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

Комментарии

Идентификаторы, определенные в MemberAttributes перечислении, можно использовать для указания области и атрибутов доступа члена класса.The identifiers defined in the MemberAttributes enumeration can be used to indicate the scope and access attributes of a class member.

Примечание

Отсутствует Virtual атрибут Member.There is no Virtual member attribute. Член объявлен как виртуальный, устанавливая его доступ к public ( property1.Attributes = MemberAttributes.Public ) без указания его в качестве конечного.A member is declared virtual by setting its member access to Public (property1.Attributes = MemberAttributes.Public) without specifying it as Final. Отсутствие последнего флага делает элемент virtual в C# ( public virtual ) overridable в Visual Basic ( Public Overridable ).The absence of the Final flag makes a member virtual in C# (public virtual), overridable in Visual Basic (Public Overridable). Чтобы не объявлять член как virtual или overridable , установите флаги Public и Final в Attributes свойстве.To avoid declaring the member as virtual or overridable, set both the Public and Final flags in the Attributes property. AttributesДополнительные сведения о задании атрибутов элементов см. в свойстве.See the Attributes property for more information on setting member attributes.

Примечание

Шаблон для установки флагов доступа (флаги, содержащие термины Public , Private , Assembly или Family ) заключается в маскировке всех флагов доступа с помощью маски AccessMask, а также при установке требуемого флага доступа.The pattern for setting the access flags (flags containing the terms Public, Private, Assembly, or Family) is to mask out all access flags using the AccessMask mask and then set the desired access flag. Например, оператор Code определяет конструктор (с именем constructor1 ) как Public constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public; .For example, the code statement to identify a constructor (named constructor1) as public is constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;. Если Attributes установить свойство непосредственно к флагу доступа (например, constructor1.Attributes = MemberAttributes.Public; ), удаляются все другие флаги, которые могут быть установлены.Setting the Attributes property directly to an access flag (for example, constructor1.Attributes = MemberAttributes.Public;) erases all other flags that might be set. Этот шаблон также следует использовать для установки флагов области (абстрактные, окончательные, статические, переопределения или константы) с использованием маски Скопемаск.This pattern should also be used for setting the scope flags (Abstract, Final, Static, Override or Const) using the ScopeMask mask.

Применяется к

См. также раздел