Visual Basic: klasser och objekt

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2009

Visual Basic: klasser och objekt

Hej

Jag håller på att sätta mig in i Visual Basic och har stött på lite problem.
jag har gjort en klass som jag kallar Data där jag vill kunna lagra lite olika typer av information.

Jag vill sen skapa en länkad lista med objekt utav klassen Data och här börjar det bli lite svettigt

Har för ett par år sen suttit och gjort detta i c++ på Borland Turbo från början av 90 talet så jag har lite problem att få saker och ting att fungera.

Det jag undrar är med andra ord om jag är i rätt riktning.. koden för min klass kommer här:

Public Class Data

Private GPRS As Integer
Private Timestamp As Integer
Private PreviousData As Data
Private NextData As Data

'===============Ny Data==============================
Public Sub New(ByVal value As Integer, ByVal time As Integer)

GPRS = value
Timestamp = time

End Sub
'===============TIDIGARE & SENARE DATA===============
Public Function GetPreviousData()
Return PreviousData
End Function

Public Function GetNextData()
Return NextData
End Function

Public Sub SetNextData(ByVal nextObj As Object)
NextData = nextObj
End Sub

Public Sub SetPreviousData(ByVal PreviousObj As Object)
PreviousData = PreviousObj
End Sub

'===============RETUNERAR VÄRDEN=====================
Public Function GetGPRS()
Return GPRS
End Function

Public Function GetTimestamp()
Return Timestamp
End Function

End Class

Så i mitt huvudprogram när jag vill skapa ett objekt skriver jag:

Dim objActiveData As New Data(gprs, time)

Men är det rätt att göra såhär när jag vill lägga till ett nytt objekt som ska hamna längst fram i listan?

----------------------------------------------------------------

Sub NewData(ByVal g, ByVal t)

Dim NyData As New Data(g, t)
objActiveData.SetNextData(NyData)
NyData.SetPreviousData(objActiveData)
objActiveData = NyData

End Sub

----------------------------------------------------------------

Det värkar fungera men jag måste på något sätt tala om för första objektet att det är det första och för sista att det är det sista

Jag antar att det finns gott om folk här som kan det här bra mycke bättre än vad jag kan..

all hjälp uppskattas!

tack på förhand
//Niklas

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008

Låter för mig som du borde använda collections:
http://msdn.microsoft.com/en-us/library/f26wd2e5(VS.80).aspx

Vill du att objektet ska hamna längst fram i listan kan du skriva

AllData.Add(NewDataObject, NewDataObject.ID, 1)

vill du ha nästa objekt kan du skriva något liknande detta:

dim nextobject = AllData.Item(ActiveObject + 1)

Hoppas det funkar:)

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2009

Tack!

Det var precis vad jag behövde

Det funka fint, förutom när jag ska ropa på ett specefikt objekt, i länken du la upp står det följande:

woCurrent = workOrders.Item(3)

för att få objekt nr 3 i lista, det fungerar utmärkt, men jag skulle vilja ha en variabel där istället, tex getObjectNr

woCurrent = workOrders.Item(getObjectNr)

och om jag har förstått rätt måste det vara av typen String, men jag får bara felmeddelanden när jag tex provar

woCurrent = workOrders.Item( CStr(getObjectNr) )

några tips?

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2009

Okej förlåt, det skulle vara en Integer problemet löst!

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008

Grymt:) Vill du ha en sträng går det också! Det står där någonstans också, man använder sig av keywords!

Kul att se lite fler .net-programmerare här!

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2009

Jag måste säga att det är väldigt givande att sitta i Visual Basic

Jag håller som sagt på att sätter mig in i språket och jag har en del knepiga uppgifter framför mig så detta är nog inte det sista innlägget av den här typen som dyker upp här av mig

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008

Haha, är det något så är det bara att PM:a mig;)

Kör dock mest visual c# nu men har skrivit VB ett tag:)

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2009

Okej

Trevligt, då får du säkert höra av mig innom en snar framtid och återigen tack! Det är precis sånt här som gör att man söker sig till sweclockers när man behöver hjälp eller bolla ideer!