次の方法で共有


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 マスク。

次のコード例では、 を使用して および set アクセサーを使用CodeMemberPropertyしてプロパティをstringget定義する方法を示します。

// 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 。 メンバーは、そのメンバー アクセスを Public (property1.Attributes = MemberAttributes.Public) に設定し、Final として指定せずに仮想として宣言されます。 Final フラグがない場合、Visual BasicPublic Overridable () の C# (public virtual) overridable にメンバーvirtualが作成されます。 メンバーが または overridableとしてvirtual宣言されないようにするには、 プロパティに Public フラグと Final フラグの両方をAttributes設定します。 メンバー属性の設定の Attributes 詳細については、 プロパティを参照してください。

注意

アクセス フラグ (、、PrivateAssembly、または Familyという用語Publicを含むフラグ) を設定するパターンは、AccessMask マスクを使用してすべてのアクセス フラグをマスクし、目的のアクセス フラグを設定することです。 たとえば、コンストラクター (という名前 constructor1) を public として識別するコード ステートメントは です constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;。 プロパティを Attributes アクセス フラグ (たとえば) に直接設定すると、 constructor1.Attributes = MemberAttributes.Public;設定できる他のすべてのフラグが消去されます。 このパターンは、ScopeMask マスクを使用してスコープ フラグ (Abstract、Final、Static、Override、Const) を設定する場合にも使用する必要があります。

適用対象

こちらもご覧ください