MemberAttributes Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan pengidentifikasi atribut anggota untuk anggota kelas.
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
- Warisan
- Atribut
Bidang
Abstract | 1 | Anggota abstrak. |
AccessMask | 61440 | Masker akses. |
Assembly | 4096 | Anggota yang dapat diakses oleh kelas mana pun dalam rakitan yang sama. |
Const | 5 | Anggota konstanta. |
Family | 12288 | Anggota yang dapat diakses dalam keluarga kelas dan kelas turunannya. |
FamilyAndAssembly | 8192 | Anggota yang dapat diakses dalam kelasnya, dan memperoleh kelas dalam rakitan yang sama. |
FamilyOrAssembly | 16384 | Anggota yang dapat diakses dalam kelasnya, kelas turunannya di perakitan apa pun, dan kelas apa pun dalam rakitan yang sama. |
Final | 2 | Anggota yang tidak dapat ditimpa di kelas turunan. |
New | 16 | Anggota baru. |
Overloaded | 256 | Anggota yang kelebihan beban. Beberapa bahasa, seperti Visual Basic, mengharuskan anggota yang kelebihan beban ditunjukkan secara eksplisit. |
Override | 4 | Anggota yang mengambil alih anggota kelas dasar. |
Private | 20480 | Anggota privat. |
Public | 24576 | Anggota publik. |
ScopeMask | 15 | Masker cakupan. |
Static | 3 | Anggota statis. Di Visual Basic, ini setara dengan |
VTableMask | 240 | Masker VTable. |
Contoh
Contoh kode berikut menunjukkan penggunaan untuk CodeMemberProperty menentukan string
properti dengan get
dan set
aksesor.
// 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
Keterangan
Pengidentifikasi yang ditentukan dalam MemberAttributes enumerasi dapat digunakan untuk menunjukkan cakupan dan atribut akses anggota kelas.
Catatan
Tidak ada Virtual
atribut anggota. Anggota dinyatakan virtual dengan mengatur akses anggotanya ke Publik (property1.Attributes = MemberAttributes.Public
) tanpa menentukannya sebagai Final. Tidak adanya bendera Final membuat anggota virtual
di C# (public virtual
), overridable
di Visual Basic (Public Overridable
). Untuk menghindari mendeklarasikan anggota sebagai virtual
atau overridable
, atur bendera Publik dan Akhir di Attributes properti . Attributes Lihat properti untuk informasi selengkapnya tentang pengaturan atribut anggota.
Catatan
Pola untuk mengatur bendera akses (bendera yang berisi istilah Public
, , Private
, Assembly
atau Family
) adalah menutupi semua bendera akses menggunakan masker AccessMask lalu mengatur bendera akses yang diinginkan. Misalnya, pernyataan kode untuk mengidentifikasi konstruktor (bernama constructor1
) sebagai publik adalah constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;
. Attributes Mengatur properti langsung ke bendera akses (misalnya, constructor1.Attributes = MemberAttributes.Public;
) menghapus semua bendera lain yang mungkin diatur. Pola ini juga harus digunakan untuk mengatur bendera cakupan (Abstract, Final, Static, Override, atau Const) menggunakan masker ScopeMask.