Yapılar ve Sınıflar (Visual Basic)
Visual Basicyapılar ve sınıflar, her ikisinin de aynı özelliklerin çoğu destek sonucu sözdizimi birleştirir.Ancak, aynı zamanda önemli farklar vardır yapılar ve sınıflar arasında.
Sınıflar başvuru tipleri olmanın avantajı vardır — başvuru geçirmeden tüm veri yapısı değişkenle geçirerek daha verimlidir.Diğer taraftan, yapıları genel Öbek bellek ayrılmasını gerektirmez.
Bir yapısından devralamaz çünkü yapıları genişletilmiş gerekmez nesneler için kullanılmalıdır.Oluşturmak istediğiniz nesne bir küçük örnek boyutu ve yapılar ve sınıflar performans özelliklerini dikkate yapıları kullanın.
Benzerlikler
Yapılar ve sınıflar içinde şu bakımdan benzer:
Her ikisi de kap türleri, üye olarak diğer türleri içerdikleri anlamına gelir.
Her ikisi de, Kurucular, yöntemleri, özellikleri, alanlar, sabitler, numaralandırma, olayları ve olay işleyicilerini içeren üyelere sahip.Ancak, bu üyeleri ile bildirilen karıştırmayın öğeleri bir yapı.
Üyeleri hem de erişim düzeyleri individualized.Örneğin, bir üye bildirilen Public ve başka bir Private.
Her ikisi de arabirimleri uygulayabilirsiniz.
Her ikisi de Kurucular ile veya parametre olmadan paylaşılan.
Her ikisi de açık hale getirebilir bir Varsayılan özellik, koşuluyla özelliği en az bir parametre alır.
Her ikisini de bildirmeniz ve olaylarını ve her ikisi de Temsilciler bildirebilirsiniz.
Farklılıklar
Yapılar ve sınıflar aşağıdaki konuşmalar içinde farklılık gösterir:
Yapýlar þunlardýr: deðer türleri; sınıfları baþvuru türleri.Yapı türünde bir değişken veri yapısı ayarlarını içeren yerine sınıf türü verilere bir başvuru içeren yapar.
Yığın ayırma yapıları kullanın; yığın ayırma sınıflarını kullanın.
Tüm yapı öğeleri, Public varsayılan değer olarak; Sınıf değişkenleri ve sabitleri Private varsayılan olarak, diğer sınıf üyesi olduğunuzda Public varsayılan olarak.Bu davranış sınıf üyeleri için varsayılan Visual Basic 6.0 Sistem uyumluluğunu sağlar.
En az bir paylaşılmayan değişken veya paylaşılmayan, noncustom bir yapıya sahip olmalıdır olay öğesi; bir sınıf tamamen boş olabilir.
Yapı öğelerini olarak bildirilemez Protected; sınıf üyesi olabilir.
Yalnızca yapı yordamı olayları işleyebilirsiniz bir Shared (Visual Basic)Sub yordam ve yalnızca sayesinde AddHandler Deyimi; herhangi bir sınıf yordamı kullanarak olayları ele Handles Tümcesi (Visual Basic) anahtar sözcüğünü ya da AddHandler ifadesi.Daha fazla bilgi için bkz. Olaylar (Visual Basic).
Yapı değişken bildirimlerini Başlatıcı veya diziler için başlangıç boyutları belirleyemezsiniz; sınıf değişken bildirimleri yapabilirsiniz.
Yapıları dolaylı olarak miras ValueType sınıf ve diğer herhangi bir türden; devralamaz sınıflar devralan herhangi bir sınıf veya sınıfların dışında ValueType.
Yapıları devredilebilir değildir; sınıflardır.
Yapıları hiçbir zaman sona, ortak dil çalışma zamanı (clr) hiçbir zaman çağrıları için Finalize yöntemi üzerinde herhangi bir yapı; Çöp çağıran Toplayıcı tarafından (gc) sınıfları sona Finalize kalan hiçbir etkin başvurular var. algıladığında bir sınıf üzerinde.
Bir yapı, bir kurucu gerektirmez; bir sınıf yapar.
Yapılar olabilir yalnızca parametreleri; alıyorsanız paylaşılmayan Kurucular sınıflar bunları veya Parametreler olmadan olabilir.
Parametresiz örtülü bir public kurucu her yapıya sahiptir.Bu Oluşturucu tüm yapı 's veri öğelerini varsayılan değerlerine sıfırlar.Bu davranışı yeniden tanımlanamaz.
Örnekler ve değişkenleri
Yapılar değer türüdür çünkü her yapı değişkenini kalıcı olarak tek tek yapı örneğine bağlı.Ancak sınıflar başvuru türleridir ve bir nesne değişkeni farklı zamanlarda çeşitli sınıf örneklerine başvurabilirsiniz.Bu ayrımın kullanımınızı yapılar ve sınıflar aşağıdaki yollarla etkiler:
Başlatma. Bir yapı değişkeni dolaylı olarak bir başlatma yapısı ayarlarını parametresiz oluşturucusu kullanarak öğeleri içerir.Bu nedenle, Dim s As struct1 eşdeğeri olan Dim s As struct1 = New struct1().
Değişkenleri atama. Bir yapı değişkeni başka birine atamak veya yapısı örneği yordamı için argüman, tüm değişken öğelerinin geçerli değerleri yeni yapısına kopyalanır.Başka bir nesne değişkenine atamak veya bir nesne değişkeni bir yordama aktarmak, başvuru işaretçisi kopyalanır.
Hiçbir şey atama. Değer atayabilirsiniz Nothing (Visual Basic) bir yapı değişkeni ancak örneği devam değişkenle ilişkilendirilmesi.Yine de, yöntemlerini çağırabilmesini ve değişken öğeleri tarafından atama Çöken rağmen veri öğelerini erişebilirsiniz.
Buna karşılık bir nesne değişkeni ayarlamak, Nothing, herhangi bir sınıfın örneği ilişkisini ve başka bir örneğini atayana kadar herhangi bir üye değişkeni erişemez.
Birden çok örneği. Bir nesne değişkeni kendisine atanmış farklı zamanlarda farklı sınıf örneklerini olabilir ve aynı anda birkaç nesne değişkenleri aynı sınıf örneğine başvuruda bulunabilir.Sınıf üyesi değerleri için yaptığınız değişiklikler aynı örneğini işaret başka bir değişken üzerinden erişildiğinde bu üyeler etkiler.
Yapı öğelerini, ancak kendi örneğinde yalıtılmıştır.Herhangi bir diğer yapı değişkenleri, hatta aynı diğer örneklerini değerlerine yapılan değişiklikler uygulanmıyor Structure bildirimi.
Eşitlik. Bir öğe test iki yapılarından eşitlik sınama gerçekleştirilmelidir.İki nesne değişkenleri kullanarak karşılaştırılabilir Equals yöntemi.Equalsiki değişken aynı örneğine işaret olup olmadığını gösterir.
Ayrıca bkz.
Görevler
Veri Türleri Sorunlarını Giderme (Visual Basic)
Kavramlar
Bileşik Veri Türleri (Visual Basic)
Değer Türleri ve Başvuru Türleri
Yapılar ve Diğer Programlama Öğeleri (Visual Basic)