Indholdsfortegnelse:
Video: Endocrine System, Part 1 - Glands & Hormones: Crash Course A&P #23 2025
VB. NET-programmer er opdelt i zoner, ligesom USA er opdelt i stater, amter og byer. Ligesom retshåndhævende agenter har forskellige størrelser af jurisdiktioner (byens politiet, statsborgerne og FBI, som kan gå overalt), VB. NET programmeringslinjer har indflydelsesområder. Denne indflydelsesområde, kaldet scope, , gælder hovedsagelig for variabler (men kan også gælde for procedurer - subs og funktioner - samt hele klasser).
Adgang til en variabel
Ofte vil du spørge eller ændre værdien i en variabel, men om denne variabel er tilgængelig for dig, afhænger af dens anvendelsesområde. For eksempel kan du altid få adgang til en variabel fra samme procedure (funktioner, underrutiner og begivenheder er alle procedurer).
For at se, hvordan dette virker, skriv følgende i dit kode modul:
Privat Subform1_Load (ByVal afsender som system. Object, ByVal e As System. EventArgs) Håndterer MyBase. Indlæs
Dim N As String = "Denne"
MsgBox (N)
Slutdel
Tryk på F5 og bemærk, at MsgBox ikke har noget problem med at vise værdien af variabelen N.
Den viser Dette. Indtast nu en anden under lige under Form1_Load-under i kodevinduet:
Offentlig subprøve ()
MsgBox (N)
Afslutningsdel
Bemærk, at der er en sawtooth line under variablen N i TryIt sub. Hold musemarkøren oven på savtlinjen og VB. NET viser en fejlmeddelelse, der fortæller dig, at navn 'N' ikke er angivet.
Denne fejlmeddelelse betyder, at alle linjer af kode i TryIt-suben (mellem Public Sub og End Sub) ikke kan læse (adgang) eller skrive (ændre) variablen N. N blev erklæret (med Dim kommando) i en separat procedure, og så er omfanget af N (dets tilgængelighed) begrænset til linjer med kode inden for samme procedure.
Selv om Dim er den mest almindeligt anvendte, kan du bruge syv yderligere erklæringskommandoer: Statisk, Offentlig, Beskyttet, Ven, Delt, Beskyttet Ven og Privat. Disse ekstra kommandoer angiver omfang (fra hvilke steder i dit program kan en variabel fås).
Bemærk, at når du erklærer en variabel i en procedure, fungerer variablen kun inden for den procedure. Når programmet udfører proceduren (eller hændelsen), kommer variablen til live, gør dens ting, og dør derefter (forsvinder), så snart slutlinjen udføres.
Når variabler er lokale
Variabler, der kun lever i en enkelt procedure, kaldes lokale variabler. Lokale variabler har to kvaliteter, som du skal huske:
- Ingen programmering uden for deres egen procedure kan interagere med dem, enten for at læse deres værdi eller for at ændre deres værdi. Deres omfang er begrænset til deres egen procedure.
- Når VB slutter at udføre proceduren, hvor de bor, fordampes deres værdi. Hvis denne procedure udføres en anden gang, er den værdi, som den lokale variabel en gang indeholdt, ikke længere der. En udførelse af proceduren er deres levetid. Der er nogle situationer, hvor du vil have en lokal variables værdi, der skal bevares. I disse tilfælde bruger du den statiske kommando i stedet for kommandoen Dim:
Privat Sub Form1_Load (ByVal-afsender Som System. Objekt, ByVal e Som System. EventArgs) Håndterer MyBase. Load
Dim n Som Integer
Statisk x Som Integer
Slut Sub
I dette eksempel taber variablen N sin værdi, når End Sub udføres. Imidlertid beholder variablen x dens værdi, indtil programmet lukkes. En anden måde at sætte det på er dette: Når du bruger den statiske kommando med en lokal variabel, bevares værdien af denne variabel i hele applikationens levetid. (Livstiden betyder, hvor længe der findes noget i et program.)
Hvad tror du ville ske, hvis du lægger to kommandoknapper på din formular, og så løb du programmet og klikede på Command1 først og derefter klikede på Command2 i dette næste program?
Privat Sub Button1_Click (ByVal afsender Som System. Objekt, ByVal e Som System. EventArgs) Håndterer Button1. Klik
Dim X Som Integer
X = X + 5
Slut Sub
Privat Sub Button2_Click (ByVal Afsender Som System. Object, ByVal e Som System. EventArgs) Håndterer Button2. Klik på
Dim X som helhed
MsgBox (X)
Slutdel
Meddelelsesboksen viser ingenting. Variablen X i Command1's klikhændelse er en helt anden variabel fra X i Command2s klikhændelse. De er lokale og har simpelthen ikke noget forhold til hinanden, ikke mere end to fremmede ved navn Mike, som tilfældigvis bor i Bronx og aldrig mødes.
Men hvad hvis du vil have begge disse procedurer til at få adgang til og manipulere den samme variabel? For at gøre dette definerer du variablen uden for dine procedurer. Prøv det. Klik lige over din første procedure (lige over linjen Private Sub Form1_Load) i kodevinduet for at flytte indsætningsmarkøren der.
Indtast nu følgende:
Dim x As Integer
Det er her, du vil sætte nogle variabler, som du ønsker at give form-wide scope - med andre ord at tillade alle procedurer i den formular (Form1, i dette tilfælde) for at kunne læse og ændre variablen. (Det område, hvor du anvender formelle variabler, blev tidligere kaldt General Declarations-området, før VB. NET.)
Nu, med den X-variabel Dimmet deroppe (udenfor) alle delene og andre procedurer, når du kører det samme program, klik på Command1, og klik derefter på Command2, du ser resultatet, du vil se: nummeret 17. Når du erklærer X for at være bredt udformet, kan de to knapper få adgang til variablen X.Slet de to Dim-sætninger, der tidligere erklærede X inden for de to knaphændelser. Nu refererer X = X + 5 og MsgBox (X) begge til den samme variabel, der hedder X.
Når en variabel har form-wide scope, er den så tilgængelig for alle procedurer i den form. Det er imidlertid ikke tilgængeligt for procedurerne i andre former i projektet.