MemberAttributes Sabit listesi

Tanım

Sınıf üyeleri için üye öznitelik tanımlayıcılarını tanımlar.

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
Devralma
MemberAttributes
Öznitelikler

Alanlar

Abstract 1

Soyut üye.

AccessMask 61440

Erişim maskesi.

Assembly 4096

Aynı derlemedeki herhangi bir sınıf için erişilebilir olan bir üye.

Const 5

Sabit üye.

Family 12288

Sınıfının ve türetilmiş sınıfların ailesi içinde erişilebilen bir üye.

FamilyAndAssembly 8192

Sınıfı içinde erişilebilir bir üye ve aynı derlemede türetilmiş sınıflar.

FamilyOrAssembly 16384

Sınıfı içinde erişilebilir bir üye, herhangi bir derlemedeki türetilmiş sınıfları ve aynı derlemedeki herhangi bir sınıf.

Final 2

Türetilmiş bir sınıfta geçersiz kılınamayan bir üye.

New 16

Yeni üye.

Overloaded 256

Aşırı yüklenmiş bir üye. Visual Basic gibi bazı dillerde aşırı yüklenmiş üyelerin açıkça belirtilmesi gerekir.

Override 4

Bir temel sınıf üyesini geçersiz kılan bir üye.

Private 20480

Özel bir üye.

Public 24576

Genel üye.

ScopeMask 15

Kapsam maskesi.

Static 3

Statik üye. Visual Basic'te bu anahtar sözcükle Shared eşdeğerdir.

VTableMask 240

VTable maskesi.

Örnekler

Aşağıdaki örnek kod, ve set erişimcileri ile get bir string özellik tanımlamak için bir kullanımını CodeMemberProperty gösterir.

// 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

Açıklamalar

Numaralandırmada MemberAttributes tanımlanan tanımlayıcılar, bir sınıf üyesinin kapsam ve erişim özniteliklerini belirtmek için kullanılabilir.

Not

Üye özniteliği yok Virtual . Üye, üye erişimini Son olarak belirtmeden Genel (property1.Attributes = MemberAttributes.Public) olarak ayarlanarak sanal olarak bildirilir. Son bayrağının olmaması, Visual Basic(Public Overridable içinde C# () overridablepublic virtualiçinde bir üye virtual yapar. Üyenin veya overridableolarak virtual bildirilmesinden kaçınmak için özelliğinde Attributes hem Genel hem de Son bayraklarını ayarlayın. Üye özniteliklerini Attributes ayarlama hakkında daha fazla bilgi için özelliğine bakın.

Not

Erişim bayraklarını (, , Assemblyveya Familyterimlerini Publiciçeren bayraklar) ayarlama deseni, PrivateAccessMask maskesini kullanarak tüm erişim bayraklarını maskeleyip istenen erişim bayrağını ayarlamaktır. Örneğin, bir oluşturucuyu (adlı constructor1) genel olarak tanımlamak için kod deyimi şeklindedir constructor1.Attributes = (constructor1.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;. Attributes Özelliği doğrudan bir erişim bayrağına (örneğin, ) ayarlamak, constructor1.Attributes = MemberAttributes.Public;ayarlanabilecek diğer tüm bayrakları siler. Bu desen, ScopeMask maskesini kullanarak kapsam bayraklarını (Soyut, Son, Statik, Geçersiz Kılma veya Const) ayarlamak için de kullanılmalıdır.

Şunlara uygulanır

Ayrıca bkz.