Structure Yapısı
Bir yapının adını bildirir ve değişkenleri, özellikleri, olayları ve yapısını oluşturan yordamların tanımını tanıtır.
[ <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ğıdaki değerlerden biri olabilir: |
Shadows |
İsteğe bağlı.Bkz: Gölgeler. |
Partial |
İsteğe bağlı.Yapının kısmi bir tanımını belirtir.Bkz: Kısmi (Visual Basic) |
name |
Gerekli.Bu yapının adı.Bkz: Bildirilen Öğe Adları (Visual Basic) |
Of |
İsteğe bağlı.Bunun genel amaçlı bir yapı olduğunu belirtir. |
typelist |
Of anahtar sözcüğünü kullanıyorsanız gereklidir.Bu yapı için tür parametreleri listesi.Bkz: Tür Listesi. |
Implements |
İsteğe bağlı.Bu yapının bir veya daha fazla arabirim üyesini uyguladığını belirtir.Bkz: Implements Deyimi |
interfacenames |
Implements ifadesini kullanıyorsanız gereklidir.Bu yapının uyguladığı arayüzlerin adları. |
datamemberdeclarations |
Gerekli.Sıfır veya daha fazla Const, Dim, Enum veya Event ifadesi, yapının veri üyelerini bildiriyor. |
methodmemberdeclarations |
İsteğe bağlı.Yapının yöntem üyeleri işlevi gören, sıfır veya daha fazla Function, Operator, Property veya Sub bildirimi. |
End Structure |
Gerekli.Structure tanımını sonlandırır. |
Notlar
Structure belirtimi, özelleştirebileceğiniz bir bileşik değer türü tanımlar.Yapı Visual Basic uygulamasının önceki sürümlerinin kullanıcı tanımlı türünün (UDT) genelleştirilmiş halidir.Daha fazla bilgi için bkz. Yapılar (Visual Basic).
Yapılar sınıflarla aynı özelliklerin çoğunu destekler.Örneğin, yapılar özelliklere ve yordamlara sahip olabilir, arabirimleri uygulayabilir ve parametreli oluşturuculara sahip olabilir.Ancak, devralma, bildirimler ve kullanım alanlardaki yapılar ve sınıflar arasında önemli farklılıklar vardır.Ayrıca, sınıflar başvuru, yapılar değer türüdür.Daha fazla bilgi için bkz. Yapılar ve Sınıflar (Visual Basic).
Structure'ı yalnızca ad alanı veya modül düzeyinde kullanabilirsiniz.Bu, bir yapı için bildirim içeriğinin bir kaynak dosyası, ad alanı, sınıf, yapı, modül veya arabirimi 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 (Visual Basic).
Yapılar varsayılan olarak Arkadaş (Visual Basic) erişimine sahiptir.Erişim değiştiricileri ile, erişim düzeylerini ayarlayabilirsiniz.Daha fazla bilgi için bkz. Visual Basic'de Erişim Düzeyleri.
Kurallar
İç İçe Geçme. Bir yapıyı başka bir yapı içinde tanımlayabilirsiniz.Dış yapı içeren yapı olarak adlandırılır ve iç yapı ise iç içe yapı olarak adlandırılır.Ancak, içeren yapı ile iç içe geçmiş bir yapının üyelerine erişemezsiniz.Bunun yerine, iç içe geçmiş yapının veri türünde bir değişken bildirmeniz gerekir.
Üye Bildirimi. Bir yapının her üyesini bildirmeniz gerekir.Yapıdan hiçbir şey devralınamayacağından, Yapı üyesi Korumalı veya Protected Friend olamaz.Ancak yapının kendisi Protected veya Protected Friend olabilir.
Bir yapıda sıfır veya daha çok paylaşılmayan değişkenler veya paylaşılmayan, özel olmayan olaylar bildirebilirsiniz.Bazıları paylaşılmayan olsa bile yalnızca sabitler, özellikler ve yordamlar bulunamaz.
Başlatma. Bir yapının herhangi bir paylaşılmayan veri üyesinin değerini, bildirimi kapsamında başlatılamazsınız.Böyle bir veri üyesini, yapıdaki parametreli bir kurucu kullanarak başlatmanız veya yapının örneğini oluşturduktan sonra üyeye bir değer atamanız gerekir.
Devralma. Yapı, tüm türlerin devraldığı ValueType dışındaki türlerden devralamaz.Özellikle, bir yapı bir başkasından devralınamaz.
Inherits Deyimi'ı ValueType'ı belirtmek için bile olsa, bir yapı tanımında kullanamazsınız.
Uygulama. Yapı Implements Deyimi kullanıyorsa, interfacenames konumunda belirttiğiniz her arabirim tarafından tanımlanan her üyeyi uygulamalısınız.
Varsayılan Özellik. Yapı Varsayılan (Visual Basic) değiştiricisini kullanarak varsayılan özellik olarak en fazla bir özellik belirleyebilir.Daha fazla bilgi için bkz. Varsayılan (Visual Basic).
Davranış
Erişim Düzeyi. Bir yapı içerisinde, her bir üyeyi kendi erişim düzeyiyle bildirebilirsiniz.Tüm yapı üyeleri Public (Visual Basic) erişimi varsayılanını kullanır.Eğer daha kısıtlı bir erişim düzeyi yapısı varsa, erişim değiştiricileri ile kullanıcıların erişim düzeylerini ayarlasanız bile, bu otomatik olarak üyelere erişimi kısıtlar.
Kapsam. Bir yapı ad alanını, sınıfını, yapısını veya modülünü, içerdiği sürece kapsamdadır.
Her yapı öğesinin kapsamı yapının tamamıdır.
Ömür. Yapının tek başına bir ömrü yoktur.Bunun yerine, bu yapının her örneğinin tüm diğer örneklerden bağımsız bir ömrü vardır.
Bir örneğin yaşam ömrü, New İşleci (Visual Basic) yan tümcesi tarafından oluşturulduğunda başlar.Değişkenin ömrü sona erdiğinde bu da sona erer.
Bir yapı örneğinin ömrünü uzatamazsınız.Statik yapı işlevselliğine yaklaşık bir tahmin modül tarafından sağlanabilir.Daha fazla bilgi için bkz. Module Deyimi.
Yapı üyelerinin ömürleri nasıl ve nerede beyan edildiklerine bağlıdır.Daha fazla bilgi için, Class Deyimi (Visual Basic) konusundaki "Ömür" başlığına bakın.
Nitelik. Bir yapı dışındaki kod, bir üyenin adını bu yapı adıyla nitelemelidir.
İç içe bir yapı içinde kod programlama öğesine nitelenmemiş bir başvuru yaparsa, Visual Basic ilk önce iç içe yapıda, sonra içeren yapısında ve en dıştaki içeren öğede öğeyi arar.Daha fazla bilgi için bkz. Bildirilmiş Öğelere Başvurular (Visual Basic).
Bellek Tüketimi. Tüm bileşik veri türleriyle olduğu gibi, bir yapının toplam bellek tüketimini, üyelerinin nominal depolama ayırmalarını birlikte ekleyerek güvenli bir şekilde hesaplayamazsınız.Ayrıca, bellekteki depolama sırasının bildirim sırasıyla aynı olduğunu güvenli olarak varsayamazsınız.Yapının depolama düzenini denetlemeniz gerekirse StructLayoutAttribute özniteliğini Structure deyimine uygulayabilirsiniz.
Örnek
Aşağıdaki örnek bir çalışan için ilgili bir veri seti tanımlamak üzere Structure bildirisi kullanır.Veri öğelerinin duyarlılığını yansıtmak için Public, Friend ve Private üyelerinin kullanımını gösterir.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
Ayrıca bkz.
Başvuru
Interface Deyimi (Visual Basic)