Structure Yapısı

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

Syntax

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

Bölümler

Süre Tanım
attributelist İsteğe bağlı. Bkz. öznitelik listesi.
accessmodifier İsteğe bağlı. Aşağıdakilerden biri olabilir:

- Geneldir
- Korunamadı
- Dost
- Özelleştirme
- Korumalı arkadaş
- Özel korumalı

Visual Basic erişim düzeylerinebakın.
Shadows İsteğe bağlı. Bkz. gölgeler.
Partial İsteğe bağlı. Yapının kısmi bir tanımını gösterir. Kısmigör.
name Gereklidir. Bu yapının adı. Bkz. tanımlanmış öğe adları.
Of İsteğe bağlı. Bunun genel bir yapı olduğunu belirtir.
typelist Anahtar sözcüğünü kullanıyorsanız gereklidir. Bu yapının tür parametrelerinin listesi. Bkz. tür listesi.
Implements İsteğe bağlı. Bu yapının bir veya daha fazla arabirimin üyelerini uyguladığını gösterir. Bkz. Implements açıklaması.
interfacenames İfadesini kullanıyorsanız gereklidir Implements . Bu yapının uyguladığı arabirimlerin adları.
datamemberdeclarations Gereklidir. Const Dim Enum Event Yapının veri üyelerini bildiren sıfır veya daha fazla,, veya ifadesi.
methodmemberdeclarations İsteğe bağlı. Function Operator Property Sub Yapının Yöntem üyeleri olarak işlev gösteren sıfır veya daha fazla bildirim,, veya yordamlar.
End Structure Gereklidir. Tanımı sonlandırır Structure .

Açıklamalar

Structureİfade, özelleştirebileceğiniz bir bileşik değer türü tanımlar. Yapı , önceki Visual Basic sürümlerindeki Kullanıcı tanımlı tür (udt) genelleştirmesidir. Daha fazla bilgi için bkz. yapılar.

Yapılar sınıflarla aynı özelliklerin birçoğunu destekler. Örneğin, yapıların özellikleri ve yordamları olabilir, arabirimler uygulayabilir ve parametreli oluşturuculara sahip olabilirler. Ancak, devralma, bildirimler ve kullanım gibi alanlardaki yapılar ve sınıflar arasında önemli farklılıklar vardır. Ayrıca, sınıflar başvuru türleridir ve yapılardır değer türlerdir. Daha fazla bilgi için bkz. yapılar ve sınıflar.

StructureYalnızca ad alanı veya modül düzeyinde kullanabilirsiniz. Bu, bir yapının bildirim bağlamının bir kaynak dosya, ad alanı, sınıf, yapı, modül veya arabirim olması 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.

Varsayılan yapılar arkadaş erişimine sahiptir. Erişim değiştiricilerini kullanarak erişim düzeylerini ayarlayabilirsiniz. Daha fazla bilgi için bkz. Visual Basic erişim düzeyleri.

Kurallar

  • İç içe geçme. Bir yapıyı diğeri içinde tanımlayabilirsiniz. Dış yapıya kapsayan yapı denir ve iç yapıya iç içe yapı denir. Ancak, iç içe bir yapının üyelerine kapsayan yapı aracılığıyla erişemezsiniz. Bunun yerine, iç içe yapının veri türünün bir değişkenini bildirmeniz gerekir.

  • Üye bildirimi. Bir yapının her üyesini bildirmeniz gerekir. Protected Friend Bir yapıyla hiçbir şey devraldığı için bir yapı üyesi korunamıyor veya Ancak, yapının kendisi Protected veya olabilir Protected Friend .

    Bir yapıda sıfır veya daha fazla paylaşılmayan değişken ya da paylaşılmayan, özel olmayan olaylar bildirebilirsiniz. Bazıları paylaşılmamış olsa bile yalnızca sabitler, Özellikler ve yordamlar olamaz.

  • Başlatılmasında. Bir yapının paylaşılmayan veri üyesinin değerini, bildiriminin bir parçası olarak başlatılamaz. Bu tür bir veri üyesini yapıda parametreli bir Oluşturucu aracılığıyla ya da yapının bir örneğini oluşturduktan sonra üyeye bir değer atamanız gerekir.

  • Devralmayı. Bir yapı ValueType , tüm yapıların devraldığı dışındaki herhangi bir türden devralınabilir. Özellikle, bir yapı diğerinden devralınabilir.

    Bir yapı tanımında Inherits ifadesini belirtmek için bile kullanamazsınız ValueType .

  • Paylaşır. Yapı Implements ifadesinikullanıyorsa, içinde belirttiğiniz her arabirim tarafından tanımlanan her üyeyi uygulamanız gerekir interfacenames .

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

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şime sahiptir. Yapının kendisine daha kısıtlı bir erişim düzeyi varsa, erişim değiştiricilerine erişim düzeylerini ayarlasanız bile bu, erişimi otomatik olarak kısıtlar.

  • Kapsam. Bir yapı, kapsayan ad alanı, sınıf, yapı veya modül genelinde kapsamdadır.

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

  • Süre. Bir yapının yaşam süresi yoktur. Bunun yerine, bu yapının her örneğinin diğer tüm örneklerden bağımsız bir yaşam süresi vardır.

    Bir örneğin yaşam süresi, Yeni bir işleç yan tümcesi tarafından oluşturulduğunda başlar. Bu, kendisini tutan değişkenin ömrü sona erdiğinde sona erer.

    Bir yapı örneğinin ömrünü genişletemezsiniz. Statik yapı işlevselliğine yaklaşık bir modül tarafından sağlanır. Daha fazla bilgi için bkz. module deyimleri.

    Yapı üyelerinin yaşam sürelerinin nasıl ve nerede bildirilmesine bağlı olarak yaşam süreleri vardır. Daha fazla bilgi için bkz. Class deyimindeki"Lifetime".

  • Yeter. Bir yapının dışındaki kodun bir üyenin adını bu yapının adıyla nitelemeniz gerekir.

    iç içe yerleştirilmiş bir yapı içindeki kod, bir programlama öğesine nitelenmemiş bir başvuru yaparsa, Visual Basic iç içe yapıdaki öğeyi, ardından kapsayan yapısını ve bu öğeyi en dıştaki içeren en dıştaki öğeyi arar. Daha fazla bilgi için bkz. bildirilmemiş öğelere başvurular.

  • Bellek tüketimi. Tüm bileşik veri türlerinde olduğu gibi, üyelerinin nominal depolama ayırmalarını birlikte ekleyerek bir yapının toplam bellek tüketimini güvenle hesaplayabilirsiniz. Ayrıca, bellekteki depolama sırasının bildirimin sıralamayla aynı olduğunu güvenli bir şekilde varsayamaz. Bir yapının depolama yerleşimini denetetmeniz gerekirse, StructLayoutAttribute özniteliğini Structure ifadeye uygulayabilirsiniz.

Örnek

Aşağıdaki örnek, Structure bir çalışan için ilgili verilerin bir kümesini tanımlamak üzere ifadesini kullanır. Public Friend Private Veri öğelerinin duyarlılığını yansıtmak için,, ve üyelerinin kullanımını gösterir. Ayrıca yordamı, özelliği ve olay üyelerini 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

' Nin nasıl kullanılacağı hakkında daha fazla bilgi için Structure bkz. yapı değişkeni.

Ayrıca bkz.