Ga naar inhoud

[VB 6.0] nieuwe instantie


anoniem

Aanbevolen berichten

ik heb hier zo'n handboek voor VB6 liggen en er staat in als ik van een bepaalde klasse een nieuwe instantie wil maken (en deze in ObjectX wil opslaan) dan gebruik ik de volgende code daarvoor:[code:1:288db48664]Dim ObjextX As New ClassX[/code:1:288db48664]De functie van het sleutelwoord [color=green:288db48664]New[/color:288db48664] is volgens het boek dat er een nieuwe instantie wordt gemaakt. (duh) Maar wat gebeurt er nou als ik dat niet doe? (geen New; zo dus:)[code:1:288db48664]Dim ObjectY As ClassX[/code:1:288db48664]Wat is dan het verschil tussen ObjectX en ObjectY??? -sven-
Link naar reactie
[quote:4ad8ac80c0="leijer"]ik heb hier zo'n handboek voor VB6 liggen en er staat in als ik van een bepaalde klasse een nieuwe instantie wil maken (en deze in ObjectX wil opslaan) dan gebruik ik de volgende code daarvoor:[code:1:4ad8ac80c0]Dim ObjextX As New ClassX[/code:1:4ad8ac80c0]De functie van het sleutelwoord [color=green:4ad8ac80c0]New[/color:4ad8ac80c0] is volgens het boek dat er een nieuwe instantie wordt gemaakt. (duh) Maar wat gebeurt er nou als ik dat niet doe? (geen New; zo dus:)[code:1:4ad8ac80c0]Dim ObjectY As ClassX[/code:1:4ad8ac80c0]Wat is dan het verschil tussen ObjectX en ObjectY??? -sven-[/quote:4ad8ac80c0] Als je ObjectY wilt gebruiken, dan krijg je de volgende fout ofzo: "Object variabele not set" Je moet de variabele ObjectX en ObjectY zien als een variabele met een verwijzing (pointer) naar het werkelijke object. Bij ObjectY is deze nog niet aangemaakt. Bij ObjectX is geheugen gereserveerd, etc. en daarin is het object geplaatst.
Link naar reactie
ok ik snap het. er stond trouwens ook nog iest over 'Set'. die gebruik je toch als je al een object gedeclareerd hebt maar er nog geen nieuwe instantie voor gemaakt hebt? zo dus: [code:1:1fb371a5ec]Dim ObjectY As ClassX 'code 'code 'later Set ObjectY = New ClassX[/code:1:1fb371a5ec]of zou ik dat ook gewoon 'ineens' met een nog nooit eerder genoemd ObjextZ kunnen doen?
Link naar reactie
Het antwoord op je eerste vraag is ja, je declareert eerst een variabele en daarna gebruik je die variabele om een nieuwe instantie te maken. Het antwoord op de tweede vraag is wat moeilijker, als je in je opties aangegeven hebt dat je eerst de variabelen moet declareren dan gaat VB een foutmelding geven. Als je niet hebt aangegeven dat je variabelen moet declareren voor gebruik en je gebruikt ook geen "Option Explicit" dan zal VB je variabel automatisch aanmaken en kun je hem gebruiken. Maar zodra je ergens een typfout maakt dan maakt VB automatisch een nieuwe variabele aan, erg verwarrend, moeilijk op te sporen en vooral niet de gebruikte manier van werken. Volgens mij is de beste methode - Dim varabele as class - Set variabele = New class en aan ieder mogelijk einde van je programma doe je dan - Set variabele = Nothing zodat je zeker weet dat het gebruikte geheugen vrij komt, kleine extra moeite. Je kunt dit natuurlijk ook al doen wanneer je de instantie niet meer nodig hebt, bijvoorbeeld als je de instantie alleen in specifieke subs of functions gebruikt.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...