Structure Yapısı

Bir yapının adını bildirir ve yapının oluşturduğu değişkenlerin, özelliklerin, olayların ve yordamların tanımını tanıtır.

Sözdizimi

[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ Partial ] _
Structure name [ ( Of typelist ) ]
    [ Implements interfacenames ]
    [ datamemberdeclarations ]
    [ methodmemberdeclarations ]
End Structure

Parça

Süre Tanım
attributelist isteğe bağlı. Bkz. Öznitelik Listesi.
accessmodifier isteğe bağlı. Aşağıdakilerden biri olabilir:

- Public
- Protected
- Friend
- Private
- Protected Friend
- Private Protected

Bkz. Visual Basic'te erişim düzeyleri.
Shadows isteğe bağlı. Bkz. Gölgeler.
Partial isteğe bağlı. Yapının kısmi tanımını gösterir. Bkz. Kısmi.
name Gerekli. Bu yapının adı. Bkz. Bildirilen Öğe Adları.
Of isteğe bağlı. Bunun genel bir yapı olduğunu belirtir.
typelist Of anahtar sözcüğünü kullanıyorsanız gereklidir. Bu yapı için tür parametrelerinin listesi. Bkz. Tür Listesi.
Implements isteğe bağlı. Bu yapının bir veya daha fazla arabirimin üyelerini uyguladığını gösterir. Bkz . Implements Deyimi.
interfacenames deyimini Implements kullanıyorsanız gereklidir. Bu yapının uyguladığı arabirimlerin adları.
datamemberdeclarations Gerekli. Yapının veri üyelerini belirten sıfır veya daha fazla Const, Dim, Enumveya Event deyimi.
methodmemberdeclarations isteğe bağlı. Yapının yöntem üyeleri olarak görev yapan , Operator, Propertyveya yordamlarının sıfır veya Sub daha fazla bildirimiFunction.
End Structure Gerekli. Tanımı sonlandırır Structure .

Açıklamalar

deyimi Structure , özelleştirebileceğiniz bileşik bir değer türünü tanımlar. Yapı, Visual Basic'in önceki sürümlerinin kullanıcı tanımlı türünün (UDT) genelleştirilmesidir. Daha fazla bilgi için bkz . Yapılar.

Yapılar, sınıflar ile aynı özelliklerin çoğunu destekler. Örneğin, yapıların özellikleri ve yordamları olabilir, arabirimleri uygulayabilir ve parametreli oluşturucuları olabilir. Ancak devralma, bildirimler ve kullanım gibi alanlardaki yapılar ve sınıflar arasında önemli farklar vardır. Ayrıca, sınıflar başvuru türleri ve yapılar değer türleridir. Daha fazla bilgi için bkz . Yapılar ve Sınıflar.

Yalnızca ad alanı veya modül düzeyinde kullanabilirsiniz Structure . Bu, bir yapının bildirim bağlamının bir kaynak dosya, ad alanı, sınıf, yapı, modül veya arabirim olması gerektiği ve bir yordam veya blok olamayacağı anlamına gelir. Daha fazla bilgi için bkz . Bildirim Bağlamları ve Varsayılan Erişim Düzeyleri.

Yapılar varsayılan olarak Arkadaş erişimi olarak gösterilir. Erişim değiştiricileri ile erişim düzeylerini ayarlayabilirsiniz. Daha fazla bilgi için bkz . Visual Basic'te erişim düzeyleri.

Kurallar

  • Iç içe. Bir yapıyı başka bir yapı içinde tanımlayabilirsiniz. Dış yapıya içeren yapı, iç yapı ise iç içe yapı olarak adlandırılır. Ancak, iç içe geçmiş bir yapının üyelerine, içeren yapı üzerinden erişemezsiniz. Bunun yerine iç içe yapı veri türünün değişkenini bildirmeniz gerekir.

  • Üye Bildirimi. Bir yapının her üyesini bildirmeniz gerekir. Yapı üyesi Korumalı olamaz veya Protected Friend bir yapıdan hiçbir şey devralamadığından. Ancak yapının kendisi veya Protected FriendolabilirProtected.

    Bir yapıda sıfır veya daha fazla paylaşılmayan değişken veya paylaşılmayan, özel olmayan olaylar bildirebilirsiniz. Bazıları paylaşılmasa bile yalnızca sabitlere, özelliklere ve yordamlara sahip olamazsınız.

  • Başlatma. Bir yapının paylaşılmayan veri üyesinin değerini bildiriminin bir parçası olarak başlatamazsınız. Bu tür bir veri üyesini yapıdaki parametreli bir oluşturucu aracılığıyla başlatmanız veya yapının bir örneğini oluşturduktan sonra üyeye bir değer atamanız gerekir.

  • Devralma. Bir yapı, tüm yapıların devraldığı dışında ValueTypeherhangi bir türden devralamaz. Özellikle, bir yapı başka bir yapıdan devralamaz.

    Bir yapı tanımında , hatta belirtmek için Inherits Deyimini kullanamazsınız ValueType.

  • Uygulama. Yapı Implements Deyimini kullanıyorsa, içinde interfacenamesbelirttiğiniz her arabirim tarafından tanımlanan her üyeyi uygulamanız gerekir.

  • Varsayılan Özellik. Bir yapı, Varsayılan değiştiriciyi kullanarak varsayılan özelliği olarak en fazla bir özellik belirtebilir. Daha fazla bilgi için bkz . Varsayılan.

Davranış

  • Erişim Düzeyi. Bir yapı içinde, her üyeyi kendi erişim düzeyiyle bildirebilirsiniz. Tüm yapı üyeleri varsayılan olarak Genel erişim olarak adlandırılır. Yapının kendisi daha kısıtlı bir erişim düzeyine sahipse, erişim düzeylerini erişim değiştiricilerle ayarlasanız bile, bu ayarın üyelerine erişimi otomatik olarak kısıtladığını unutmayın.

  • Kapsam. Bir yapı, ad alanı, sınıf, yapı veya modül içeren tüm kapsam içindedir.

    Her yapı üyesinin kapsamı tüm yapıdır.

  • Ömür. Bir yapının kendi ömrü yoktur. Bunun yerine, bu yapının her örneğinin diğer tüm örneklerden bağımsız bir ömrü vardır.

    Örneğin ömrü, New Operator yan tümcesi tarafından oluşturulduğunda başlar. Bu, onu tutan değişkenin ömrü sona erdiğinde sona erer.

    Yapı örneğinin ömrünü uzatamazsınız. Statik yapı işlevselliğine yaklaşık bir modül tarafından sağlanır. Daha fazla bilgi için bkz . Modül Deyimi.

    Yapı üyelerinin nasıl ve nerede bildirildiğine bağlı olarak yaşam süreleri vardır. Daha fazla bilgi için bkz. Sınıf Deyimi'nde "Yaşam Süresi".

  • Nitelik. Bir yapının dışındaki kod, bir üyenin adını bu yapının adıyla nitelemelidir.

    İç içe bir yapı içindeki kod bir programlama öğesine nitelenmemiş bir başvuru yaparsa, Visual Basic önce iç içe yerleştirilmiş yapıda, ardından içeren yapısında ve en dıştaki içeren öğeye kadar öğeyi arar. Daha fazla bilgi için bkz . Bildirilen Öğelere Başvurular.

  • Bellek Tüketimi. Tüm bileşik veri türlerinde olduğu gibi, üyelerinin nominal depolama ayırmalarını bir araya ekleyerek bir yapının toplam bellek tüketimini güvenli bir şekilde hesaplayamazsınız. Ayrıca, bellekteki depolama sırasının bildirim sıranızla aynı olduğunu güvenle varsayamazsınız. Bir yapının depolama düzenini denetlemeniz gerekiyorsa özniteliğini StructLayoutAttribute deyimine Structure uygulayabilirsiniz.

Örnek

Aşağıdaki örnekte, bir çalışan için ilişkili bir veri kümesi tanımlamak üzere deyimi kullanılır Structure . Veri öğelerinin duyarlılığını Publicyansıtmak için , Friendve Private üyelerinin kullanımını gösterir. Ayrıca yordam, özellik ve olay üyelerini de gösterir.

Public Structure employee
    ' Public members, accessible from throughout declaration region.
    Public firstName As String
    Public middleName As String
    Public lastName As String
    ' Friend members, accessible from anywhere within the same assembly.
    Friend employeeNumber As Integer
    Friend workPhone As Long
    ' Private members, accessible only from within the structure itself.
    Private homePhone As Long
    Private level As Integer
    Private salary As Double
    Private bonus As Double
    ' Procedure member, which can access structure's private members.
    Friend Sub CalculateBonus(ByVal rate As Single)
        bonus = salary * CDbl(rate)
    End Sub
    ' Property member to return employee's eligibility.
    Friend ReadOnly Property Eligible() As Boolean
        Get
            Return level >= 25
        End Get
    End Property
    ' Event member, raised when business phone number has changed.
    Public Event ChangedWorkPhone(ByVal newPhone As Long)
End Structure

S'leri kullanma Structurehakkında daha fazla bilgi için bkz . Yapı Değişkeni.

Ayrıca bkz.