Bagikan melalui


MemberAttributes Enum

Definisi

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
MemberAttributes
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 Shared dengan kata kunci.

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.

Berlaku untuk

Lihat juga