🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
2 messages
2 total messages Started by TRAX Tue, 01 Apr 2003 13:48
constructor die een object meegeeft in vb.net
#5525
Author: TRAX
Date: Tue, 01 Apr 2003 13:48
23 lines
1950 bytes
ik heb zelf een constructor gemaakt die een form oproept en met een extra
argument van het type logon:
Public Sub New(ByRef sessie As logon)

MyClass.New()

dezesessie = sessie

End Sub

dezesessie wordt in de klasse gedeklareerd, sessie, het argument dat
meegegeven wordt is ook gedeclareerd maar dan in de form van waaruit de
constructor aangeroepen wordt.
dezesessie zou dus toch dezelfde waarden moeten hebben als sessie of niet?
misschien iets met de operator = geldt die niet voor objecten? ik krijg er
in elk geval geen error op. Maar als ik het probeer te runnen, dan krijg ik
bij deze statement :
dezesessie.controleerstatus(status)    (een lidfunctie van de klasse logon)
de volgende exeption: system.nullreferenceexeption
Wat doe ik fout??

--
stijn.verspeet@pandora[delete.this].be
Re: constructor die een object meegeeft in vb.net
#5369
Author: abraham
Date: Sat, 05 Apr 2003 18:29
43 lines
2611 bytes
Een mogelijke reden is dat je het argument ByRef meegeeft. Dat wil zeggen
dat als je, na het aanroepen van de constructor, het object dat je meegaf
gaat vernietigen (of out-of-scope gaat) dat ook in de klasse waaraan je het
meegaf zal verdwijnen, omdat 'dezesessie' gewoon een geheugenreferentie
bevat naar het originele object.

Om zeker te weten dat dit het probleem is, zou ik uiteraard de code die
onderstaande New aanroept moeten zien.

Probeer voor de zekerheid eens ByVal ipv ByRef...

Veel geluk :)


"TRAX" <Stijn.Verspeet@pandora[delete.this].be> wrote in message
news:2Ngia.18098$t_2.1848@afrodite.telenet-ops.be...
> ik heb zelf een constructor gemaakt die een form oproept en met een extra
> argument van het type logon:
> Public Sub New(ByRef sessie As logon)
>
> MyClass.New()
>
> dezesessie = sessie
>
> End Sub
>
> dezesessie wordt in de klasse gedeklareerd, sessie, het argument dat
> meegegeven wordt is ook gedeclareerd maar dan in de form van waaruit de
> constructor aangeroepen wordt.
> dezesessie zou dus toch dezelfde waarden moeten hebben als sessie of niet?
> misschien iets met de operator = geldt die niet voor objecten? ik krijg er
> in elk geval geen error op. Maar als ik het probeer te runnen, dan krijg
ik
> bij deze statement :
> dezesessie.controleerstatus(status)    (een lidfunctie van de klasse
logon)
> de volgende exeption: system.nullreferenceexeption
> Wat doe ik fout??
>
> --
> stijn.verspeet@pandora[delete.this].be
>
>
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads