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 , Enum veya Event deyimi. |
methodmemberdeclarations |
isteğe bağlı. Yapının yöntem üyeleri olarak görev yapan , Operator , Property veya 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 veyaProtected Friend
olabilirProtected
.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
interfacenames
belirttiğ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ı Public
yansıtmak için , Friend
ve 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 Structure
hakkında daha fazla bilgi için bkz . Yapı Değişkeni.
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin