Udostępnij za pośrednictwem


Wskazówki: tworzenie składnika za pomocą Visual Basic

Składniki zapewniają wielokrotnego użytku kod w postaci obiektów.Aplikacja, która używa składnika kodu, przez tworzenie obiektów i wywoływanie ich właściwości i metod, nazywa się klienta.Klient może lub nie może być w tym samym zestawie jako składnik, którego używa.

Następujące procedury opierać się na siebie, tak ważna jest kolejność, w którym wykonywana.

[!UWAGA]

Okien dialogowych i poleceń menu, którą widzisz mogą różnić się od tych opisanych w pomocy, w zależności od tego, aktywne ustawienia lub edition.Aby zmienić ustawienia, wybierz polecenie Importuj i Eksportuj ustawienia na Narzędzia menu.Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Tworzenie projektu

Aby utworzyć bibliotekę klas CDemoLib i składnik CDemo

  1. Z pliku menu, wybierz Nowy a projektu otworzyć Nowego projektu okno dialogowe.Wybierz Biblioteka klas szablon z listy typów projektów programu Visual Basic project, a następnie wprowadź CDemoLib w Nazwa pole.

    [!UWAGA]

    Zawsze należy określić nazwę nowego projektu, podczas jej tworzenia.Ten sposób określa obszar nazw katalogu głównego, nazwy zestawu i nazwa projektu i zapewnia również, że składnik domyślny będzie poprawny obszaru nazw.

  2. W Solution Explorer, kliknij prawym przyciskiem myszy CDemoLib i wybierz Właściwości z menu skrótów.Warto zauważyć, że głównego obszaru nazw zawiera pole CDemoLib.

    Obszar nazw katalogu głównego jest używany przy przyporządkowywaniu nazw składników w zestawie.Na przykład, jeśli dwa zestawy składników o nazwie CDemo, można określić swoje CDemo za pomocą składnika CDemoLib.CDemo.

    Zamknij okno dialogowe.

  3. Z Projekt menu, wybierz polecenie Dodać składnik.W Dodaj nowy element okno dialogowe Wybierz Klasy składnika i typu CDemo.vb.w Nazwa pole.Składnik o nazwie CDemo jest dodawany do biblioteki klas.

  4. W Solution Explorer, kliknij przycisk Pokaż wszystkie pliki przycisku.Otwórz CDemo.vb węzeł, aby pokazać CDemo.Designer.vb pliku.Kliknij prawym przyciskiem myszy CDemo.Designer.vb i wybierz polecenie Widok Kod z menu skrótów.Otwiera edytor kodu

  5. Zawiadomienie Inherits System.ComponentModel.Component bezpośrednio poniżej Partial Public Class CDemo.W tej sekcji wyznacza klasy, z której dziedziczy swojej klasy.Domyślnie składnik dziedziczy z Component klasy oferowanych przez system.Component Klasy udostępnia wiele funkcji dla składnika, w tym możliwość używania projektantów.

  6. Locate Public Sub New().Wybierz treści całej metody i Wytnij go z CDemo.Designer.vb pliku, naciskając klawisze CTRL-X.

  7. W Solution Explorer, kliknij prawym przyciskiem myszy CDemo.vb i wybierz polecenie Widok Kod z menu skrótów.Otwiera edytor kodu.

  8. Wkleić zaznaczenie do treści CDemo klasy.Dzięki temu można pracować na nowy bez ingerencji z projektanta.

  9. W Solution Explorer, kliknij prawym przyciskiem myszy Class1.vb i wybierz polecenie usunąć.Usuwa domyślnej klasy dołączonej Biblioteka klas, jak nie będzie ono wykorzystane w tym instruktażu.

  10. Z pliku menu, wybierz polecenie Zapisz wszystkie do zapisania projektu.

Dodawanie konstruktory i finalizatorów

Konstruktory kontrolować sposób, który składnik jest zainicjowana; Finalize metoda kontroluje sposób rozerwań ją w dół.Kod w konstruktorze i Finalize metody CDemo klasy utrzymuje licznikiem liczby CDemo obiektów istniejących.

Aby dodać kod konstruktora i finalizatorów klasy CDemo

  1. W Edytor kodu, dodać zmienne składowe, aby zachować bieżącą liczbę wystąpień CDemo klasy i numer identyfikacyjny dla każdego wystąpienia.

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

    Ponieważ InstanceCount i NextInstanceID są zadeklarowane zmienne składowe Shared, istnieją tylko na poziomie klasy.Wszystkie wystąpienia CDemo dostępu tych członków będą używać tej samej lokalizacji w pamięci.Współużytkowane składniki zostaną zainicjowane po raz pierwszy CDemo klasy jest określona w kodzie.Może to być po raz pierwszy CDemo tworzony jest obiekt lub uzyskać dostępu do jednego z członków udostępnionego po raz pierwszy.

  2. Zlokalizuj Public Sub New() i Public Sub New(Container As System.ComponentModel.IContainer), konstruktory domyślne dla CDemo klasy.W Visual Basic, wszystkie konstruktory są o nazwie New.Składnik może mieć kilku konstruktorów z różnymi parametrami, ale takie muszą mieć nazwę New.

    [!UWAGA]

    Poziom dostępu konstruktory decyduje o tym, jakie klienci będą mogli tworzyć wystąpień tej klasy.W innych wersjach języka Visual Basic, tworzenie obiektów był kontrolowany przez Instancing właściwości; Jeżeli Czytelnik korzystał Instancing właściwość, mogą być przydatne go odczytać Zmiany tworzenia wystąpienia składnika w języku Visual Basic.

  3. Dodaj następujący kod do Sub New(), aby zwiększyć licznik wystąpień, gdy nowy CDemo jest tworzony oraz aby ustawić numer ID wystąpienia.

    [!UWAGA]

    Zawsze dodać kod po wywołaniu InitializeComponent.W tym punkcie wszelkie części składowe zostały zainicjowane.

    InstanceID = NextInstanceID
    NextInstanceID += 1
    ClassInstanceCount += 1
    

    Jako ReadOnly Członkowskie, InstanceID można ustawić tylko w konstruktorze.

    [!UWAGA]

    Użytkownicy znający wielowątkowość będzie wskazywanie zupełnie słusznie tego przypisywanie InstanceID i kolejnym NextInstanceID powinien być atomowej operacji.Tego i innych zagadnień związanych z wątków są przedstawione w Wskazówki: tworzenie prostego składnika wielowątkowego za pomocą języka Visual Basic.

  4. Po zakończeniu konstruktora należy dodać następujące metody:

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

    Wywołania Menedżera pamięci Finalize tuż przed ostatecznie ta pamięci zajmowanego przez CDemo obiektu.Finalize Metody pochodzi z Object, główny wszystkie typy odwołań w.Hierarchia klas netto.Nadrzędnym Finalize, można wykonać oczyszczanie, tuż przed składnik jest usuwany z pamięci.Jednakże jak zobaczymy później w tym instruktażu, istnieją uzasadnione powody, aby zwolnić zasoby wcześniej.

Dodawanie właściwości do klasy

CDemo Klasy ma tylko jedną właściwość, udostępnionych właściwość, która umożliwia klientowi dowiedzieć się, jak wiele CDemo obiekty są w pamięci w danej chwili.W podobny sposób można utworzyć metody.

Aby utworzyć właściwości dla klasy CDemo

  • Dodaj następującą deklarację właściwości do CDemo klasy, aby umożliwić klientom pobieranie liczbę wystąpień CDemo.

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

    [!UWAGA]

    Składnia deklaracji właściwości różni się od zatrudnionych we wcześniejszych wersjach języka Visual Basic.Aby uzyskać więcej informacji o zmianie składni, zobacz Property Procedure Changes for Visual Basic 6.0 Users.

Testowanie składnika

Aby przetestować składnika, konieczne jest projekt, który korzysta z niego.Ten projekt musi być pierwszy projekt, który rozpoczyna się po naciśnięciu uruchomić przycisku.

Aby dodać projekt klienta CDemoTest jako projekt uruchamiania dla roztworu

  1. Z pliku menu, wskaż Dodaj i wybierz polecenie Nowy projekt otworzyć Dodać nowy projekt okno dialogowe.

  2. Wybierz Aplikacji Windows szablonu projektu i typu CDemoTest w Nazwa polu, a następnie kliknij przycisk OK.

  3. W Solution Explorer, kliknij prawym przyciskiem myszy CDemoTest i kliknij przycisk ustawiony jako uruchomienia projektu w menu skrótów.

    Aby użyć CDemo części projektu badania klient musi mieć odwołanie do projektu biblioteki klas.Po dodaniu odwołania, jest dobrym pomysłem, aby dodać Imports instrukcji stosowania badania w celu uproszczenia korzystanie ze składnika.

Aby dodać odwołanie do projektu biblioteki klas

  1. W Solution Explorer, kliknij przycisk Pokaż wszystkie pliki przycisku.Kliknij prawym przyciskiem myszy odniesienia węzeł znajdujący się bezpośrednio pod CDemoTesti wybierz polecenie Dodaj odwołanie z menu skrótów.

  2. W Dodaj odwołanie okno dialogowe Wybierz projektów kartę.

  3. Kliknij dwukrotnie CDemoLib klasy biblioteki projektu.CDemoLib pojawią się w folderze odniesienia węzeł CDemoTest projektu.

  4. W Solution Explorer, kliknij prawym przyciskiem myszy Form1.vb i wybierz Widok Kod z menu skrótów.

    Dodawanie odwołania do CDemoLib pozwala na korzystanie w pełni kwalifikowanej nazwy CDemo składnik — to znaczy, CDemoLib.CDemo.

Aby dodać instrukcję przywozu

  • Dodaje się Imports deklaracji na początek Edytor kodu do Form1, powyżej Class deklaracji:

    Imports CDemoLib
    

    Dodawanie Imports instrukcji pozwala pominąć nazwę biblioteki i odnoszą się do typu składnika jako CDemo.Aby uzyskać więcej informacji na Imports instrukcję, zobacz Przestrzenie nazw w Visual Basic.

    Będzie teraz utworzyć i przetestować składnika za pomocą programu test.

Opis okresu istnienia obiektu

CDemoTest Program będzie ilustrują okres istnienia obiektu w .NET Framework przez utworzenie i zwalnianie dużej liczby CDemo obiektów.

Aby dodać kod do tworzenia i zwolnić obiekty CDemo

  1. Kliknij przycisk Form1.vb[Design aby powrócić do projektanta.

  2. Przeciągnij Button i Timer z Wszystkich Windows Forms na karcie Przybornik na Form1 powierzchni projektu.

    Nonvisual Timer składnik pojawia się na powierzchni odrębny Projekt poniżej formularza.

  3. Kliknij dwukrotnie ikonę dla Timer1 do tworzenia metoda obsługi zdarzeń dla składnika Timer1 Tick zdarzenia.Umieść następujący kod w metodzie obsługi zdarzeń.

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

    Na każdej osi timer, podpis formularza będą wyświetlane bieżąca liczba instancji dla CDemo klasy.Nazwa klasy jest używany jako kwalifikator dla udostępnionego InstanceCount właściwość — istnieje potrzeba utworzenia wystąpienia CDemo uzyskać dostępu do udostępnionych członka.

  4. Kliknij przycisk Form1.vb [projekt tab, aby powrócić do projektanta.

  5. Kliknij prawym przyciskiem myszy Timer1 i wybierz Właściwości z menu skrótów.W Właściwości okna, należy ustawić wartość jego Enabled właściwość, aby True.Spowoduje to uruchomienie timer, zaraz po utworzeniu formularza.

  6. Kliknij dwukrotnie Button na Form1, aby utworzyć metodę obsługi zdarzeń dla tego przycisku Click zdarzenia.Umieść następujący kod w metodzie obsługi zdarzeń.

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

    Ten kod może wyglądać dziwnie do Ciebie.Jak każde wystąpienie CDemo jest tworzony, poprzednie wystąpienie jest wydany.Gdy For zakończeniu pętli, będzie tylko jedno wystąpienie CDemo lewej.Kiedy metoda obsługi zdarzeń, nawet w tej instancji zostanie zwolnione, ponieważ zmienna cd przejdzie poza zakresem.

    Jak może odgadłeś już, rzeczy nie stanie się całkiem w ten sposób.

Aby uruchomić i debugowania projektów CDemoTest i CDemo

  1. Naciśnij klawisz F5 uruchomić roztworu.

    Projekt klient chce się uruchomić, i Form1 będą wyświetlane.Należy zauważyć, że podpis formularza wyświetla "wystąpienia CDemo: 0".

  2. Kliknij przycisk.Podpis formularza należy wyświetlić "wystąpienia CDemo: 1000".

    Wystąpienia CDemo zostały wszystkie wydane przez czas przycisku Click zakończeniu procedury obsługi zdarzeń.Dlaczego nie zostały one sfinalizowany?Krótko mówiąc Menedżer pamięci Kończenie znajdujących się obiekty w tle, na niski priorytet.Priorytet jest tylko Fall, jeśli system zacznie brakować pamięci.To z opóźnieniem- schemat kolekcji garbage pozwala na bardzo szybki obiekt alokacji.

  3. Kliknij przycisk więcej kilka razy, oglądając podpis.W pewnym momencie liczbę wystąpień zostanie nagle upuścić.Oznacza to, że Menedżer pamięci ma regeneracji pamięci niektórych obiektów.

    [!UWAGA]

    Jeśli kliknięte więcej niż 10 razy i liczba CDemo nie zmniejszyła się w przypadkach, może wystąpić konieczność dopasowania kod, tak więc korzysta z większej ilości pamięci.Zamknij formularz, aby powrócić do środowiska programowania i zwiększenie liczby iteracji w For pętli do 10000.Następnie ponownie uruchom projekt.

  4. Powtórz krok 3.Otrzymasz oddalić ten czas, zanim Menedżer pamięci Kończenie więcej obiektów znajdujących się.

    W rzeczywistości, przy każdym Powtórz krok 3, prawdopodobnie można przydzielić więcej CDemo obiektów przed etapów Menedżera pamięci.To, ponieważ coraz więcej z Visual Studio jest wymieniony, pozostawiając więcej miejsca dla wystąpienia CDemo.

  5. Zamknij formularz, aby powrócić do środowiska programowania.

Zobacz też

Inne zasoby

Programowanie przy użyciu składników

Tworzenie składników — Wskazówki