Vraag & Antwoord

Programmeren

[VB 6.0] nieuwe instantie

Anoniem
leijer
4 antwoorden
  • 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
  • [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
  • 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?
  • 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.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.