MemberAttributes 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
クラス メンバーのメンバー属性識別子を定義します。
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
- 継承
- 属性
フィールド
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 の |
VTableMask | 240 | VTable マスク。 |
例
次のコード例では、 を使用して および set
アクセサーを使用CodeMemberPropertyしてプロパティをstring
get
定義する方法を示します。
// 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 詳細については、 プロパティを参照してください。
注意
アクセス フラグ (、、Private
Assembly
、または Family
という用語Public
を含むフラグ) を設定するパターンは、AccessMask マスクを使用してすべてのアクセス フラグをマスクし、目的のアクセス フラグを設定することです。 たとえば、コンストラクター (という名前 constructor1
) を public として識別するコード ステートメントは です constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;
。 プロパティを Attributes アクセス フラグ (たとえば) に直接設定すると、 constructor1.Attributes = MemberAttributes.Public;
設定できる他のすべてのフラグが消去されます。 このパターンは、ScopeMask マスクを使用してスコープ フラグ (Abstract、Final、Static、Override、Const) を設定する場合にも使用する必要があります。
適用対象
こちらもご覧ください
.NET