Mit problem er at jeg er i gang med at læse objekt orienteret programmering, og ikke helt kan finde ud af hvordan man kalder en funkrion i en class fil. Er her en som gider lave et lille eksempel, som udføre min kode, men som et objekt/klasse eller hvad det nu hedder?
Hvordan overføre man værdiger fra en form til en klasse?
Pointen med klasser er at du ikke kalder en klasse, men at du skaber et objekt på baggrund af et objekt og kalder funktionen på den. Håber det besvarer dit spørgsmål.
'En lille test klasse Public Class Testclass Public Function Response(ByVal Tekst As String) MsgBox(Tekst) End Function End Class
'Der hvor du vil kalde funktionen skrive du. Dim Tester As New Testclass Tester.Response("Dette er en test")
Public Class Displayer Private Dim s As String Public Sub New(arg As String) s = arg End Sub Public Sub DisplayUpper() MsgBox(UCase(s)) End Sub Public Sub DisplayLower() MsgBox(LCase(s)) End Sub Public Sub DisplayAsIs() MsgBox(s) End Sub End Class
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim Disp As Displayer = New Displayer(txtTekst.text) Disp.DisplayUpper() Disp.DisplayLower() Disp.DisplayAsIs() End Sub
Tak for de gode svar. Jeg skal lige prøve dem :-) Arne_v hvordan kan jeg overføre noget indhold til s fra privare sub:
Få koden kommer til at se ud som her?:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click dim2 s as string Dim Disp As Displayer = New Displayer(txtTekst.text) Disp.DisplayUpper() Disp.DisplayLower() Disp.DisplayAsIs() s2 = arg End Sub
Men hvordan får jeg den over i mit objekt?
Kan men oprette en public variabel og kalde den fra objektet? (s = s2)??
Kan man så sige at et objekt generer et nyt objekt som hun findes når koden afvikles, og at det nye objekt har en masse funktioner(hvis man har oprettet en masse klasser)?
Jeg er ikke helt sikker på at jeg forstå hvad du spørger efter.
Du kan sagtens lave en metode hvor du kan ændre s:
Public Class Displayer Private Dim s As String Public Sub New(arg As String) s = arg End Sub Public Sub DisplayUpper() MsgBox(UCase(s)) End Sub Public Sub DisplayLower() MsgBox(LCase(s)) End Sub Public Sub DisplayAsIs() MsgBox(s) End Sub Public Sub Add(s2 As String) s = s + s2 End Sub End Class
og:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim Disp As Displayer = New Displayer(txtTekst.text) Disp.DisplayUpper() Disp.DisplayLower() Disp.DisplayAsIs() Disp.Add(" (med tilføjelse)") Disp.DisplayAsIs() End Sub
Tjo det kan man godt sige. Du skal dog ikke bekymre dig om hukommelsesforbruget da funktioner kun loades en gang mens klassens data naturligvis ligger en gang pr. objekt;)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.