Udostępnij za pośrednictwem


Okres istnienia w Visual Basic

Okres istnienia zadeklarowanej elementu jest okres, podczas których jest dostępna do użytku.Zmienne są tylko elementy, których okres istnienia.W tym celu kompilator traktuje parametry procedury i funkcja zwraca jako specjalne przypadki zmiennych.Okres istnienia zmienna reprezentuje okres czasu, w którym może on przechowywać wartości.Jego wartość może ulegać zmianie jego użytkowania, ale posiada pewną wartość.

Różniących się okresów istnienia

A zmienną (zadeklarowana na poziomie modułu, poza jakąkolwiek procedurą) zazwyczaj ma ten sam okres istnienia jako element, w którym jest on zadeklarowany jako.Nieudostępnionym Zmienna zadeklarowana w klasie lub strukturze istnieje jako oddzielna kopia dla każdego wystąpienia klasy lub struktury, w którym jest on zadeklarowany jako.Każda takie zmienna ma ten sam okres istnienia jego wystąpienie.Jednakże Shared zmienna ma tylko jeden istnienia, który trwa przez cały czas działania aplikacji.

A zmienna lokalna (zadeklarowana wewnątrz procedury) istnieje tylko w czasie wykonywania procedury, w którym jest on zadeklarowany jako.Dotyczy to również parametry tej procedury i wszelkich funkcji powrotu.Jednakże jeżeli procedura ta wywołuje inne procedury, zmienne lokalne zachowują swoje wartości podczas procedury nazywane są uruchomione.

Początek okresu istnienia

Okres istnienia zmienna lokalna rozpoczyna się, gdy formant przechodzi procedury, w którym jest on zadeklarowany jako.Co zmienna lokalna jest inicjowana na wartość domyślną dla jego typu danych natychmiast rozpoczyna procedurę z systemem.Gdy napotka procedury Dim instrukcji, która określa wartości początkowe, ustawia tych zmiennych tych wartości, nawet jeśli w kodzie już przydzielone do nich inne wartości.

Każdy członek zmiennej struktury jest inicjowany, tak jakby był on oddzielna zmienna.Podobnie każdy element zmiennej tablicy jest inicjowany indywidualnie.

Zmienne zadeklarowane wewnątrz bloku wewnątrz procedury (takie jak For pętli) są inicjowane przy wjeździe do procedury.Te inicjowania staje się skuteczne, niezależnie od tego, czy Twój kod wykonywany kiedykolwiek bloku.

Koniec okresu istnienia

Gdy procedura zakończy działanie, nie są zachowywane wartości swoich zmiennych lokalnych, oraz Visual Basic ta ich pamięci.Przy następnym wywołaniu procedury, jego zmienne lokalne są nowo utworzone i ustawienie ponownie inicjowane.

Jego nieudostępnionym zmiennych instancji klasy lub struktury kończy działanie, utratę ich pamięci i ich wartości.Każde nowe wystąpienie klasy lub struktury tworzy i inicjuje od nowa swoje zmienne nieudostępnionym.Jednakże Shared zmienne są zachowywane, dopóki aplikacja przestanie działać.

Przedłużenie okresu istnienia

Jeśli zadeklarować zmienną lokalną z Static słowa kluczowego, jego okres istnienia jest dłuższy niż czas realizacji jego procedury.W poniższej tabeli przedstawiono sposób w deklaracji procedury określa, jak długo Static istnieje zmienna.

Lokalizacja procedury i udostępnianie

Rozpoczyna się istnienia zmiennej statycznej

Końce istnienia zmiennej statycznej

W module (domyślnie udostępnione)

Podczas pierwszego wywołania procedury

Gdy aplikacja przestanie działać

W klasie Shared (procedura nie jest członkiem instancji)

Podczas pierwszego wywołania procedury określonej instancji lub sama nazwa klasy lub struktury

Gdy aplikacja przestanie działać

W instancji klasy nie Shared (procedura jest członka wystąpienia)

Podczas pierwszego wywołania procedury na określone wystąpienie

Gdy wystąpienie jest dopuszczone do wyrzucania elementów bezużytecznych (GC)

Zmienne statyczne, o tej samej nazwie

Można zadeklarować statyczne zmienne o tej samej nazwie w więcej niż jednej procedurze.Jeśli to zrobisz, Visual Basic kompilator uzna każdego takiego zmienną jako odrębny element.Inicjalizacja jednego z tych zmiennych nie wpływa na inne wartości.To samo stosuje się, jeśli definiują procedurę z zestawem przeciążeniem i zadeklarować zmienną statyczną o tej samej nazwie w każdym przeciążenie.

Zawierające elementy dla zmiennych statycznych

Statyczna zmienna lokalna w obrębie klasy, można zadeklarować oznacza to, że wewnątrz procedury w tej klasie.Jednakże statyczna zmienna lokalna w strukturze, nie można zadeklarować jako członka struktury lub jako zmienna lokalna procedury w ramach tej struktury.

Przykład

Opis

Poniższy przykład deklaruje zmienną z Static (Visual Basic) słowa kluczowego.(Należy zauważyć, że nie trzeba Dim słowa kluczowego podczas Dim — Instrukcja (Visual Basic) używa modyfikator, takich jak Static.)

Kod

Function runningTotal(ByVal num As Integer) As Integer 
    Static applesSold As Integer
    applesSold = applesSold + num
    Return applesSold
End Function

Komentarze

W poprzednim przykładzie zmienna applesSold nadal istnieje po procedurze runningTotal zwraca kod wywołujący.Następnym razem runningTotal jest nazywany applesSold zachowuje jej poprzednio obliczoną wartość.

Jeśli applesSold zostały zgłoszone bez korzystania z Static, poprzedniej wartości skumulowanych nie będzie zachowane całej wywołania runningTotal.Następnym razem runningTotal została wywołana, applesSold czy zostały utworzone ponownie i inicjowany na 0, i runningTotal mogłoby mieć po prostu zwracane tę samą wartość, z którego została wywołana.

Kompilowanie kodu

Można zainicjować wartość statyczna zmienna lokalna jako część swojej deklaracji.Przy deklarowaniu tablicy za Static, może zainicjować swojej rangi (liczba wymiarów), długość każdego z wymiarów i wartości poszczególnych elementów.

Zabezpieczenia

W poprzednim przykładzie, można utworzyć ten sam okres istnienia, oświadczając, applesSold na poziomie modułu.Jeśli zmieniono zakres zmiennej w ten sposób, jednakże procedury już miałyby wyłącznego dostępu do niego.Ponieważ może uzyskać dostęp do innych procedur applesSold i zmień jego wartość, Suma bieżąca może być zawodne i kod może być trudniejszy do utrzymania.

Zobacz też

Zadania

Rozwiązywanie problemów związanych z typami danych (Visual Basic)

Informacje

Shared (Visual Basic)

Nothing (Visual Basic)

Static (Visual Basic)

Koncepcje

Zadeklarowane nazwy elementów (Visual Basic)

Odwołania do elementów zadeklarowanych (Visual Basic)

Zakres w Visual Basic

Poziomy dostępu w Visual Basic

Zmienne w Visual Basic

Deklaracja zmiennej w Visual Basic