Okres istnienia w języku 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 Statyczne (Visual Basic) słowa kluczowego.(Należy zauważyć, że nie trzeba Dim słowa kluczowego podczas Dim instrukcji (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 z typów danych (Visual Basic)
Informacje
Koncepcje
Nazwy elementów deklarowanej (Visual Basic)
Odniesienia do zadeklarowanych elementów (Visual Basic)