Aracılığıyla paylaş


İzlenecek yol: Visual Basic ile bir bileşen geliştirme

Nesneleri, yeniden kullanılabilir kod bileşenleri sağlar.Nesne oluşturma ve bunların özelliklerini ve yöntemlerini çağıran bir bileşenin kodu kullanan bir uygulama olarak başvurulan bir İstemci.Bir istemci olabilir veya kullandığı bir bileşeni olarak aynı derlemede olmayabilir.

İçinde gerçekleştirilmeleri sırası önemlidir birbirine bağlı, aşağıdaki yordamları oluşturun.

[!NOT]

Gördüğünüz iletişim kutuları ve menü komutları, etkin ayarlarınıza ve ürün sürümüne bağlı olarak Yardım menüsünde açıklanana göre farklılık gösterebilir.Ayarlarınızı değiştirmek için Araçlar menüsünden İçeri ve Dışarı Aktarma Ayarları'nı seçin.Daha fazla bilgi için bkz. Visual Studio ayarları.

Projeyi Oluşturma

CDemoLib sınıf kitaplığı ve CDemo bileşeni oluşturmak için

  1. Dan Dosya menüsünü seçin Yeni ve Proje açmak için Yeni bir proje iletişim.Seçin Class Library Visual Basic proje türleri listesinde şablondan proje ve basın CDemoLib , ad kutusu.

    [!NOT]

    Oluştururken her zaman yeni bir proje adını belirtin.Böylece kök ad, derleme adı ve proje adını ayarlar ve varsayılan bileşen doğru ad alanında olmasını da sağlar.

  2. İçinde Solution Explorer, sağ CDemoLib ve özelliklerini kısayol menüsünden.Dikkat kök ad kutusunu içeren CDemoLib.

    Kök ad derleme bileşenleri adlarını nitelemek için kullanılır.İki derlemeler adlı bileşenleri sağlar, örneğin, CDemo, belirtebileceğiniz, CDemo bileşenini kullanarak CDemoLib.CDemo.

    İletişim kutusunu kapatın.

  3. Dan Proje menüsünden seçin Bileşen ekleme.İçinde Add New Item Seç iletişim kutusunda Bileşen sınıfı ve CDemo.vb.içinde ad kutusu.Adlı bir bileşeni CDemo Sınıf Kitaplığı'na eklenir.

  4. İçinde Solution Explorer,'ı Show All Files düğme.Açık CDemo.vb göstermek için düğüm CDemo.Designer.vb dosyası.Sağ CDemo.Designer.vb ve View Code kısayol menüsünden.Kod düzenleyicisini açar

  5. Bildirimin Inherits System.ComponentModel.Component hemen altındaki Partial Public Class CDemo.Bu bölümde, sınıfınızın devraldığı sınıfı atar.Bir bileşen devraldığı varsayılan olarak, Component sistem tarafından sağlanan sınıf.Component Sınıfı tasarımcıları kullanma yeteneği de dahil olmak üzere, bileşen için birçok özellik sağlar.

  6. Locate Public Sub New().Tüm yöntem gövdesi seçin ve buradan Kes CDemo.Designer.vb x ctrl tuşuna basarak dosya.

  7. İçinde Solution Explorer, sağ CDemo.vb ve View Code kısayol menüsünden.Kod Düzenleyicisi'ni açar.

  8. Seçimi yapıştırmak gövdesine CDemo sınıfı.Bu girişime Tasarımcısı olmadan yeni üzerinde çalışmanıza olanak sağlar.

  9. İçinde Solution Explorer, sağ Class1.vb ve silmek.Bu izlenecek yolda kullanılmayacak şekilde bu sınıf kitaplığı ile sağlanan varsayılan sınıfı siler.

  10. Dan Dosya menüsünden seçin Tümünü Kaydet projeyi kaydetmek için.

Kurucular ve Finalizers ekleme

Kurucular bileşeninizin başlatılan biçimini denetlemek; Finalize yöntemi çıkarır aşağı biçimini denetler.Kod Oluşturucusu içinde ve Finalize yöntemi, CDemo sınıfı tutar sayısı, çalışan sayısı CDemo varlığı nesneleri.

Yapıcı ve sonlandırıcıyı CDemo sınıfının kodunu eklemek için

  1. İçinde Kod Düzenleyicisi'ni, çalışan bir tutmak için üye değişken ekleyin örneklerinin toplam CDemo sınıf ve her örneği için bir kimlik numarası.

    Public ReadOnly InstanceID As Integer
    Private Shared NextInstanceID As Integer = 0
    Private Shared ClassInstanceCount As Long = 0
    

    Çünkü InstanceCount ve NextInstanceID üye değişkenler olarak bildirilen Shared, yalnızca sınıf düzeyinde kalırlar.Tüm örneklerini CDemo bu erişim üyeleri aynı bellek konumlarını kullanacaktır.Paylaşılan üyeleri ilk kez başlatılan CDemo sınıf kodu denir.Bu ilk kez olabilir bir CDemo nesne oluşturulduğunda veya paylaşılan üyelerinden biri ilk kez erişilir.

  2. Bulun Public Sub New() ve Public Sub New(Container As System.ComponentModel.IContainer), varsayılan oluşturucuları için CDemo sınıfı.De Visual Basic, bütün adlı New.Bileþeniniz farklı parametrelerle birkaç Kurucular olabilir ancak tüm adı olmalıdır New.

    [!NOT]

    Hangi istemcilerin sınıfın örneklerini oluşturamazsınız Kurucular erişim düzeyini belirler.Diğer sürümlerini Visual Basic nesne oluşturma tarafından kontrol Instancing özelliği; kullanmışsanız Instancing özelliği, size bulmak, okumak yararlı Visual Basic'te değişiklikleri örnek oluşturma bileşeni.

  3. Aşağıdaki kodu ekleyip Sub New(), yeni bir zaman örnek sayısı artırmak için CDemo oluşturulduğu ve örnek kimliği numarasını ayarlamak için.

    [!NOT]

    Her zaman çağrısının kodunuzu eklemek InitializeComponent.Bu noktada, kendisini oluşturan bileşenlerin başlatıldı.

    InstanceID = NextInstanceID
    NextInstanceID += 1
    ClassInstanceCount += 1
    

    Olarak bir ReadOnly üyesi, InstanceID yapıcı yalnızca ayarlanabilir.

    [!NOT]

    Kullanıcılar çoklu kullanım ile tanıdık işaret rightly oldukça bu atama dışarı InstanceID ve artan NextInstanceID bir Atomik İşlem olmalıdır.Bu işlem ve iş parçacığı için ilgili diğer sorunlar içinde gösterildiği İzlenecek yol: Visual Basic ile basit bir çok iş parçacıklı bileşen geliştirme.

  4. Kurucu sonunda aşağıdaki yöntemi ekleyin:

    Protected Overrides Sub Finalize()
       ClassInstanceCount -= 1
       End Sub
    

    Bellek Yöneticisi çağrıları Finalize hemen önce son olarak biçimiyleilgili tarafından kullanılan bellek CDemo nesne.Finalize Kaynaklanan yöntemi ile Object, tüm baþvuru türleri kök.net sınıf hiyerarşisi.Geçersiz kılma olarak Finalize, yalnızca bileşeninizin bellekten kaldırılmadan önce temizleme gerçekleştirebilirsiniz.Ancak, bu yönergeyi göreceğiniz gibi daha önce kaynakları serbest bırakmak için iyi nedenleri vardır.

Sınıf için bir özellik ekleme

CDemo Sınıf olan yalnızca bir özellik, istemci nasıl öğrenmek izin veren bir paylaşılan özellik birçok CDemo herhangi bir anda bellekte olan nesneler.Yöntemler benzer şekilde oluşturulabilir.

CDemo sınıfı için bir özellik oluşturmak için

  • Aşağıdaki özellik bildirimi ekleme CDemo sınıfı, istemcilerin örneklerinin sayısını almak, CDemo.

    Public Shared ReadOnly Property InstanceCount() As Long
       Get
          Return ClassInstanceCount
       End Get
    End Property
    

    [!NOT]

    Property bildirimi sözdizimini, Visual Basic önceki sürümlerinde görevli farklıdır.Sözdizimi değişikliği daha fazla bilgi için bkz: Property Procedure Changes for Visual Basic 6.0 Users.

Bileşen Sınaması

Sınama bileşeni kullanan bir proje gerekir.Bu proje bastığınızda başlatan ilk proje olması çalıştırmak düğme.

Çözüm için baþlangýç projesi olarak CDemoTest istemci proje eklemek için

  1. Dan Dosya menüsü, Ekle ve Yeni bir proje açmak için Add New Project iletişim kutusu.

  2. Seçin Windows Application proje şablonu ve Yaz CDemoTest , ad kutusunu ve ardından Tamam.

  3. İçinde Solution Explorer, sağ CDemoTest 'ı tıklatın ve Set as Startup Project'i kısayol menüsünde.

    Kullanmak için CDemo bileşeni, istemci projesinin bir class library projesi başvuru olması gerekir.Başvuru ekledikten sonra eklemek iyi bir fikir olduğu bir Imports bileşeninin kullanımını kolaylaştırmak için sınama uygulaması için deyimi.

Bir sýnýf kitaplýðý projesine baþvuru eklemek için

  1. İçinde Solution Explorer,'ı Show All Files düğme.Sağ başvuruları düğümü hemen altındaki CDemoTestve Add Reference kısayol menüsünden.

  2. İçinde Add Reference Seç iletişim kutusunda projeleri sekmesi.

  3. Çift CDemoLib class library projesi.CDemoLib altında görünür başvuruları düğümü için CDemoTest proje.

  4. İçinde Solution Explorer, sağ Form1.vb ve View Code kısayol menüsünden.

    Başvuru ekleyerek CDemoLib tam nitelikli adını kullanmanızı sağlar CDemo bileşen — yani, CDemoLib.CDemo.

Imports ifadesini eklemek için

  • Aşağıdaki Imports üstünde ifadesine Kod Düzenleyicisi'ni için Form1, yukarıdaki Class bildirimi:

    Imports CDemoLib
    

    Ekleme Imports deyimi, kitaplık adını gözardı et ve bileşen türü olarak başvurmak verir CDemo.Daha fazla bilgi için Imports deyimi, bkz: Visual Basic'te ad alanları.

    Şimdi oluşturmak ve bileşeninizin sınamak için bir sınama programı kullanın.

Nesne yaşam anlama

CDemoTest Program nesnesinin yaşam süresi göstermek .NET Framework oluşturarak ve çok sayıda serbest CDemo nesneler.

Oluşturma ve CDemo nesneleri serbest kod eklemek için

  1. ' I Form1.vb[Design Tasarımcısı dönün.

  2. Sürükle bir Button ve bir Timer dan Tüm Windows Forms sekmesinde araç üzerine Form1 tasarım yüzeyi.

    Nonvisual Timer bileşeni formun altındaki ayrı tasarım yüzeyi görünür.

  3. Simgesini çift tıklatın Timer1 Timer1 bileşen için bir olay işleme yöntemi oluşturmak için Tick olay.Olay işleme yönteminde aşağıdaki kodu yerleştirin.

    Me.Text = "CDemo instances: " & CDemo.InstanceCount
    

    Her süreölçer tick üzerinde geçerli örnek sayısı için formun başlık görüntüler CDemo sınıfı.Sınıf adı niteleyicisi olarak paylaşılan için kullanılan InstanceCount özelliği — bir örneğini oluşturmaya gerek yoktur CDemo paylaşılan üye erişmek için.

  4. Tıklatın Form1.vb dosyasının [Design Tasarımcısı dönmek için sekme.

  5. Sağ Timer1 ve özelliklerini kısayol menüsünden.İçinde özelliklerini penceresindeki değerini ayarlayın, Enabled özelliğine True.Form oluşturulana kadar bu süreölçer başlatacaktır.

  6. Çift Button , Form1, düğme için bir olay işleme yöntemi oluşturmak için Click olay.Olay işleme yönteminde aşağıdaki kodu yerleştirin.

    Dim cd As CDemo
    Dim ct As Integer
    For ct = 1 To 1000
       cd = New CDemo
    Next
    

    Bu kod, garip görünebilir.Her bir örneği olarak CDemo olan oluşturulan, önceki örnek serbest bırakılır.Zaman For döngü yapılır, tek bir örneği olur CDemo sol.Olay işleme yöntemi çıktığında bile bu örneği, çünkü yayımlanacak değişken cd kapsam dışına gidecek.

    Siz zaten tahmin gibi şeyler oldukça bu şekilde gerçekleştirilmez.

Çalıştırın ve CDemoTest ve CDemo projeleri hata ayıklamak için

  1. Press F5 çözüm başlatmak için.

    İstemci proje başlayacak, ve Form1 görüntülenir.Formun başlığını görüntüler dikkat edin "CDemo örnekleri: 0".

  2. Düğmeyi tıklayın.Formun resim yazısının görüntülenmesi gereken "CDemo örnekleri: 1000".

    Örnekleri CDemo olan düğmenin tüm serbest zaman Click olay işleme yordamı tamamlandı.Neden bunlar sonuna yapmadıysanız?Kısaca, bellek yöneticisi nesneleri daha düşük öncelikte arka planda erecektir.Sistem belleği azalmış durumdaysa öncelik yalnızca indirgenmesine.Bu geç nesne çok hızlı tahsisatını çöp toplama düzeni sağlar.

  3. Times, resim yazısı seyretmek birkaç daha düğmesini tıklatın.Belirli bir noktada aniden örneklerinin sayısını bırakın.Bu, bellek yöneticisi bazı nesnelerin bellek iadesi anlamına gelir.

    [!NOT]

    10'dan fazla zamanları ve sayısını tıklattıysanız, CDemo örneklerine olmayan azaltılması, böylece daha fazla bellek kullandığı kodu ayarlamanız gerekebilir.Geliştirme ortamına geri dönmek için formu kapatıp yineleme sayısını artırmak For 10000 döngü.Daha sonra projeyi yeniden çalıştırın.

  4. 3 Numaralı adımı yineleyin.Daha fazla bellek yöneticisi erecektir önce bu kez uzağına alırsınız.

    Aslında, her zaman 3 adımı yineleyin, muhtemelen ayıramadığı daha fazla olacak CDemo bellek yöneticisi adımları önce nesneleri.Bu daha fazla ve daha fazlası, çünkü Visual Studio , daha fazla alan bırakmak takas edilen örneklerini CDemo.

  5. Geliştirme ortamına geri dönmek için formu kapatın.

Ayrıca bkz.

Diğer Kaynaklar

Bileşenler ile programlama

Bileşen geliştirme izlenecek yollar