Archief - Methods in een Class in vb.NET

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

X1RON

Legacy Member
Hallo allemaal!

Ik zou graag een variabele binnen een klasse wijzigen door een actie in een methode van diezelfde klasse. Wanneer ik debug is echter te zien dat de variabele (die op voorhand al een waarde heeft meegekregen) de waarde 0 heeft binnen de methode.

Dit komt imo doordat ik de methode oproep met behulp van een een ander event.

In dit event roep ik de methode "stort" binnen de klasse "rekening" op dmv de volgende code:
Code:
dim stortbedrag as new rekening
stortbedrag.stort()

Nu zou ik graag de oorspronkelijke value van de private variabelen binnen mijn klasse "rekening" blijven behouden, maar volgens mij worden die door die "new" gewist.

Is hier een manier voor om deze te blijven behouden?

De volledige code:

Code:
Public Class rekening

        Private _BedragOpRekening As Single

        Public Property BedragOpRekening() As Single
            Get
                Return _BedragOpRekening
            End Get
            Set(ByVal value As Single)
                    _BedragOpRekening = value
            End Set

        End Property


        Public Sub Stort()
            Dim GestortBedrag As Single
            GestortBedrag = CSng(InputBox("Geef uw bedrag in:", "Stort"))

'_BedragOpRekening blijkt dus 0 te zijn

            _BedragOpRekening += GestortBedrag
           Messagebox.show(_BedragOpRekening) 
        End Sub

    End Class



    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim rekeninginformatie As New rekening()
        rekeninginformatie.BedragOpRekening = 100
    End Sub

    Private Sub btnStort_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStort.Click
       'Hier bevindt zich volgens mij het probleem
        Dim stortbedrag As New rekening()
        stortbedrag.Stort()
    End Sub

Grtz & thx!

Moto

Legacy Member
"New" is nieuwe instantie heh, dus idd daardoor komt het

Meeste simpele is op het form met de twee buttons van boven een (simpele != beste)

private Dim rekening As New rekening() //private is het toch in C#, vb.net is alweer effe geleden voor mij

en dan

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
rekening.BedragOpRekening = 100
End Sub

Private Sub btnStort_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStort.Click
rekening.Stort()
End Sub

X1RON

Legacy Member
Jup, het werkt, bedankt!
Wat is dan volgens jou een betere oplossing? En waarom is variabelen globaal declareren eigelijk zo "slecht"?
Enkel omdat ze gedurende het hele programma in het geheugen blijven zitten?

Bubbling Zombie

Legacy Member
H3m3l zei:
Bubbling Zombie wil je a u b tonen hoe het beter kan :)?

ge maakt een klasse die dat beheert voor u en spreekt die aan mbhv dependency injection (onderaan de pagina).

(thread uit oog verloren etc)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan