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
| Nama | Nilai | Deskripsi |
|---|---|---|
| Abstract | 1 | Anggota abstrak. |
| Final | 2 | Anggota yang tidak dapat ditimpa dalam kelas turunan. |
| Static | 3 | Anggota statis. Di Visual Basic, ini setara |
| Override | 4 | Anggota yang mengambil alih anggota kelas dasar. |
| Const | 5 | Anggota konstanta. |
| ScopeMask | 15 | Masker cakupan. |
| New | 16 | Anggota baru. |
| VTableMask | 240 | Masker VTable. |
| Overloaded | 256 | Anggota yang kelebihan beban. Beberapa bahasa, seperti Visual Basic, mengharuskan anggota yang kelebihan beban ditunjukkan secara eksplisit. |
| Assembly | 4096 | Anggota yang dapat diakses oleh kelas apa pun dalam rakitan yang sama. |
| FamilyAndAssembly | 8192 | Anggota yang dapat diakses dalam kelasnya, dan memperoleh kelas dalam rakitan yang sama. |
| Family | 12288 | Anggota yang dapat diakses dalam keluarga kelas dan kelas turunannya. |
| FamilyOrAssembly | 16384 | Anggota yang dapat diakses dalam kelasnya, kelas turunannya di rakitan apa pun, dan kelas apa pun dalam rakitan yang sama. |
| Private | 20480 | Anggota privat. |
| Public | 24576 | Anggota publik. |
| AccessMask | 61440 | Masker akses. |
Contoh
Contoh kode berikut menunjukkan penggunaan properti CodeMemberProperty untuk menentukan string properti dengan get dan set aksesor.
// 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 MemberAttributes ditentukan dalam enumerasi dapat digunakan untuk menunjukkan cakupan dan atribut akses anggota kelas.
Nota
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.
Nota
Pola untuk mengatur bendera akses (bendera yang berisi istilah Public, , Private, Assemblyatau Family) adalah menutupi semua bendera akses menggunakan masker AccessMask dan kemudian 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 (Abstrak, Final, Statis, Ambil alih atau Const) menggunakan masker ScopeMask.