Avatar billede flashit Nybegynder
16. oktober 2003 - 14:28 Der er 8 kommentarer og
2 løsninger

objekt/klasser generalt

Hej E.

Jeg har følgende kode: (det er bare et eks.)

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click       

        Dim tekst, storebugstaver As String
        tekst = txtTekst.text

        storebugstaver = UCase(tekst)
        MsgBox(storebugstaver)

    End Sub

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?
Avatar billede oswald Nybegynder
16. oktober 2003 - 20:22 #1
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")
Avatar billede arne_v Ekspert
16. oktober 2003 - 20:47 #2
Måske et mere illustrativt eksempel:

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
Avatar billede flashit Nybegynder
16. oktober 2003 - 21:04 #3
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)??
Avatar billede flashit Nybegynder
16. oktober 2003 - 21:07 #4
oswald:

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)?
Avatar billede arne_v Ekspert
16. oktober 2003 - 21:13 #5
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
Avatar billede arne_v Ekspert
16. oktober 2003 - 21:14 #6
Du kan lave metoder som gør hvad som helst.
Avatar billede oswald Nybegynder
16. oktober 2003 - 21:19 #8
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;)
Avatar billede flashit Nybegynder
16. oktober 2003 - 22:15 #9
Tusinde tak begge 2. :-)
Håber det er OK at i får en del hver.

Jeg syntes .NET er helt kanon, jeg mangler bare den store forståelse af hvordan man skaber og benytte objekter. Men det kommer vel :-)
Avatar billede oswald Nybegynder
16. oktober 2003 - 22:27 #10
Jeg faldt lige over denne side og tænkte det var noget for dig, der er en artikkel om klasser i bunden ;)
http://msdn.microsoft.com/vbasic/using/gettingstarted/default.aspx
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester