MemberAttributes 枚举

定义

定义类成员的成员特性标识符。

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

抽象成员。

AccessMask 61440

访问屏蔽。

Assembly 4096

在同一程序集中任何类都可以访问的成员。

Const 5

常数成员。

Family 12288

可以在其类以及其派生类家族内访问的成员。

FamilyAndAssembly 8192

可以在其类以及其在同一程序集中的派生类中访问的成员。

FamilyOrAssembly 16384

可以在其类、其在任何程序集中的派生类以及在同一程序集的任何类中均访问的成员。

Final 2

在派生类中不能重写的成员。

New 16

新成员。

Overloaded 256

重载成员。 某些语言(如 Visual Basic)要求显式指示重载成员。

Override 4

重写基类成员的成员。

Private 20480

私有成员。

Public 24576

公共成员。

ScopeMask 15

范围屏蔽。

Static 3

静态成员。 在 Visual Basic 中,这等效于 Shared 关键字。

VTableMask 240

VTable 屏蔽。

示例

以下示例代码演示如何使用 CodeMemberProperty 定义 string 具有 getset 访问器的属性。

// 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 定义的标识符可用于指示类成员的范围和访问属性。

注意

没有 Virtual 成员属性。 通过将成员对公共 (property1.Attributes = MemberAttributes.Public) 的成员访问权限设置为“最终”来声明为虚拟成员。 缺少 Final 标志会使 virtual C# (public virtual) 中的 overridable Visual Basic (Public Overridable) 的成员。 为了避免将成员声明为 virtualoverridable,请在 属性中 Attributes 设置 Public 和 Final 标志。 有关设置成员属性的详细信息, Attributes 请参阅 属性。

注意

设置访问标志 (包含术语 PublicPrivateAssemblyFamily) 的标志的模式是使用 AccessMask 掩码屏蔽所有访问标志,然后设置所需的访问标志。 例如,用于将名为 constructor1) 的构造函数标识为 public 的构造函数 (的代码语句是 constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;。 例如,将 Attributes 属性直接设置为访问标志 (, constructor1.Attributes = MemberAttributes.Public;) 会擦除可能设置的所有其他标志。 此模式还应该用于使用 ScopeMask 掩码设置范围标志 (Abstract、Final、Static、Override 或 Const) 。

适用于

另请参阅