Huis Persoonlijke financiën Begrip Scope in Visual Basic. NET - dummies

Begrip Scope in Visual Basic. NET - dummies

Inhoudsopgave:

Video: Your brain hallucinates your conscious reality | Anil Seth 2024

Video: Your brain hallucinates your conscious reality | Anil Seth 2024
Anonim

VB. NET-programma's zijn onderverdeeld in zones, net zoals de Verenigde Staten zijn verdeeld in staten, provincies en steden. Net zoals wetshandhavingsagenten verschillende groottes van jurisdicties hebben (stadsagenten, staats troopers en FBI, die overal naartoe kunnen gaan), VB. NET-lijnen van programmeren hebben invloedssoorten. Dit invloedsbereik, genaamd scope, is vooral van toepassing op variabelen (maar kan ook van toepassing zijn op procedures - subs en functies - maar ook op hele klassen).

Toegang tot een variabele

Vaak wilt u de waarde in een variabele opvragen of wijzigen, maar of die variabele voor u toegankelijk is, is afhankelijk van het bereik. U hebt bijvoorbeeld altijd toegang tot een variabele vanuit dezelfde procedure (functies, subroutines en gebeurtenissen zijn allemaal procedures).

Typ hier het volgende in uw codemodule om te zien hoe dit werkt:

Private Sub Form1_Load (ByVal-afzender als systeem. Object, ByVal e As System. EventArgs) Hiermee wordt MyBase afgehandeld. Laad

Dim N As String = "This"

MsgBox (N)

End Sub

Druk op F5 en merk op dat de MsgBox geen probleem heeft met het weergeven van de waarde van de variabele N.

Dit wordt weergegeven. Typ nu een andere sub net onder de Form1_Load-sub in het codevenster:

Public Sub TryIt ()

MsgBox (N)

End Sub

Merk op dat er een zaagtandlijn is onder de variabele N in de TryIt sub. Houd uw muisaanwijzer boven op de zaagtandlijn en VB. NET geeft een foutmelding weer dat 'N' niet is aangegeven.

Dit foutbericht betekent dat alle regels code in de TryIt-sub (tussen Public Sub en End Sub) de variabele N. N niet kunnen lezen (openen) of schrijven (wijzigen). Dim-opdracht) in een afzonderlijke procedure, en dus is de reikwijdte van N (het bereik van toegankelijkheid) beperkt tot coderegels binnen dezelfde procedure.

Hoewel Dim het meest wordt gebruikt, kunt u zeven extra aangiftecommando's gebruiken: statisch, openbaar, beveiligd, vriend, gedeeld, beschermd vriend en privé. Deze extra opdrachten specificeren scope (van welke locaties in uw programma een variabele toegankelijk is).

Merk op dat wanneer u een variabele binnen een procedure declareert, de variabele alleen binnen die procedure werkt. Wanneer het programma de procedure (of gebeurtenis) uitvoert, komt de variabele tot leven, doet zijn ding en sterft dan (verdwijnt) zodra de End Sub-regel wordt uitgevoerd.

Wanneer variabelen lokaal

zijn, worden variabelen die slechts binnen één procedure leven, lokale variabelen genoemd. Lokale variabelen hebben twee eigenschappen die u moet onthouden:

  • Geen programmering buiten hun eigen procedure kan met hen interageren, hetzij om hun waarde te lezen of om hun waarde te veranderen. Hun toepassingsgebied is beperkt tot hun eigen procedure.
  • Wanneer VB klaar is met het uitvoeren van de procedure waarin ze zich bevinden, verdampt hun waarde. Als die procedure een tweede keer wordt uitgevoerd, ongeacht de waarde die de lokale variabele bevatte, is deze er niet meer. Een uitvoering van de procedure is hun levensduur.
  • Er zijn enkele situaties waarin u de waarde van een lokale variabele wilt behouden. In die gevallen gebruikt u de opdracht Static in plaats van de opdracht Dim:

Private Sub Form1_Load (ByVal-afzender als systeem. Object, ByVal e As System. EventArgs) Hiermee wordt MyBase afgehandeld. Laad

Dim n Als Integer

Static x As Integer

End Sub

In dit voorbeeld verliest de variabele n zijn waarde wanneer de End Sub wordt uitgevoerd. De variabele x behoudt echter zijn waarde totdat het programma wordt afgesloten. Een andere manier om dit te zeggen is: wanneer u de opdracht Static gebruikt met een lokale variabele, wordt de waarde van die variabele gedurende de levensduur van uw toepassing bewaard. (Lifetime betekent hoe lang iets in een programma bestaat.)

Wat zou er volgens u gebeuren als u twee opdrachtknoppen op uw formulier zou plaatsen en vervolgens het programma zou uitvoeren en eerst op Command1 zou hebben geklikt en vervolgens op Command2 geklikt, in dit volgende programma?

Private Sub-knop 1_Click (ByVal-afzender als systeem. Object, ByVal e as System. EventArgs) Handles Button1. Klik op

Dim X als geheel getal

X = 12

X = X + 5

End Sub

Private Sub-knop2_Klik op (ByVal-verzender als systeem. Object, ByVal e As System. EventArgs) Handles Button2. Klik op

Dim X als geheel getal

MsgBox (X)

End Sub

Het berichtvenster geeft niets weer. De variabele X in de Click-gebeurtenis van Command1 is een geheel andere variabele dan de X in de Click-gebeurtenis van Command2. Ze zijn lokaal van aard en hebben simpelweg geen relatie met elkaar, niet meer dan twee vreemdelingen genaamd Mike die toevallig in de Bronx wonen en elkaar nooit ontmoeten.

Maar wat als u wilt dat beide procedures dezelfde variabele kunnen openen en manipuleren? Om dit te doen, definieert u de variabele buiten uw procedures. Probeer het. Klik net boven je eerste procedure (net boven de regel Private Sub Form1_Load) in het codevenster om de invoegcursor daar te verplaatsen.

Typ nu het volgende:

Dim x Als Integer

Dat is waar u variabelen wilt plaatsen die u een formulierbrede scope wilt geven - met andere woorden, om alle procedures in die vorm toe te staan ​​(Form1 in dit geval) om de variabele te kunnen lezen en wijzigen. (Het gebied waar u formulierbrede variabelen invoerde, was vroeger het gebied Algemene Verklaringen, voorafgaand aan VB. NET.)

Nu, met die X-variabele Gedimd daar boven (buiten) alle Subs en andere procedures, wanneer u voert hetzelfde programma uit, klikt u op Command1 en vervolgens op Command2, u ziet het resultaat dat u wilt zien: het getal 17. Wanneer u X formeel in bereik definieert, hebben de twee knoppen toegang tot die variabele X.Verwijder de twee Dim-instructies die X eerder hebben verklaard in die twee Button-gebeurtenissen. Nu verwijzen X = X + 5 en MsgBox (X) beide naar dezelfde variabele met de naam X.

Wanneer een variabele een bereik voor de hele breedte heeft, is deze dan beschikbaar voor alle procedures in die vorm. Het is echter niet beschikbaar voor de procedures in andere vormen van het project.

Begrip Scope in Visual Basic. NET - dummies

Bewerkers keuze

Hoe u Flash-video maakt en codeert - dummies

Hoe u Flash-video maakt en codeert - dummies

Als de pagina's die u maakt, zijn gewonnen ' t kan worden bekeken op mobiele apparaten (zoals een iPad of een smartphone), kunt u webpagina's maken met prachtige Flash-video. Adobe Flash Professional CS6 heeft een eigen ingebouwde video-encoder. Full-motionvideo in Flash is iets heel moois. U past de video aan voor het bekijken door de doelgroep ...

Hoe een aanpasbare interface te maken in CSS3 - dummies

Hoe een aanpasbare interface te maken in CSS3 - dummies

De grote variëteit en soorten schermen gebruikt om informatie weer te geven, maakt het nodig dat uw CSS3-commando's de gebruiker toestaan ​​om het formaat van de elementen naar wens aan te passen. In de meeste gevallen kunt u de gebruiker eenvoudig toestaan ​​om het element op elke gewenste grootte te maken. Er kunnen zich echter situaties voordoen waarin u de grootte van de grootte moet controleren ...

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Tabellen laten u organiseer informatie op uw webpagina en geef het een georganiseerde uitstraling die uw bezoekers nuttig zullen vinden. Bij gebruik zoals bedoeld, hebben tabellen rijen en kolommen. Voor elke spot waar een rij en kolom elkaar kruisen, hebt u een tabelcel. Elke cel kan zijn eigen opmaak hebben: de gegevens erin ...

Bewerkers keuze

Hoe Postproduction Shareninging Filters werken - dummies

Hoe Postproduction Shareninging Filters werken - dummies

Verscherpingsfilters werken in postproductie door de randen (of aangrenzende gebieden met tonaal contrast) te benadrukken aan elkaar) in een afbeelding. Ze creëren een fijne highlight aan de donkere kant van de rand en een piepklein lowlight aan de lichtere kant van de rand. Dit toegevoegde contrast zorgt ervoor dat de randen er scherper uitzien vanaf een ...

HDR Work-Flow voor foto's met één belichting - dummies

HDR Work-Flow voor foto's met één belichting - dummies

In grote lijnen, enkele belichting hoog dynamisch bereik volgt dezelfde workflow als HDR-fotografie tussen haakjes. Er kunnen kleine verschillen zijn, dus hier is een overzicht van de werkstroom: configureer uw camera voor single-shot HDR. Het enige dat u zoekt, is de beste foto die u kunt maken. Besteed aandacht aan de lichtomstandigheden, het onderwerp, beweging en ...

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Stap omhoog van compacte digitale camera's binnen het budgetbereik, vindt u duurdere compacte digitale camera's voor HDR-fotografie, ook wel high-end compacts, superzoomlenzen en dSLR-look-alikes genoemd. Er zijn zoveel vaak overlappende categorieën dat het je hoofd laat draaien. De twee dingen die deze reeks camera's gemeen hebben, zijn hun ...

Bewerkers keuze

In te schakelen Class Tracking in QuickBooks 2013 - dummies

In te schakelen Class Tracking in QuickBooks 2013 - dummies

Om activity-based costing te gebruiken (ABC ) in QuickBooks 2013 moet u de QuickBooks Class Tracking-functie inschakelen. Met Class Tracking kunt u inkomsten- en onkostentransacties categoriseren als niet alleen vallen in inkomsten- en uitgavenrekeningen, maar ook als vallen in bepaalde klassen. Volg deze stappen om Class Tracking in QuickBooks in te schakelen: Kies Bewerken → Voorkeuren ...

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Ongeacht of de client verzendt handmatig een accountantskopie van een QuickBooks-gegevensbestand, e-mails een accountantsexemplaar, of verzendt een accountantskopie via de Intuit-bestandsoverdrachtservice, u gebruikt de kopie van de accountant door Bestand → Verzend bedrijfsdossier → Accountantskopie → Open & converteer overzetten te kiezen Bestand commando. Wanneer u deze opdracht kiest, geeft QuickBooks een ...

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Als u besluit om meerdere gebruikers toegang te geven tot de QuickBooks-gegevens bestand, zult u de QuickBooks Audit Trail-functie waarderen, die bijhoudt wie welke wijzigingen aan het QuickBooks-gegevensbestand aanbrengt. U kunt transacties niet verwijderen uit de lijst of geschiedenis van de audittrail, behalve door gegevens te archiveren en te condenseren. Audit trail inschakelen ...