anoniem Geplaatst: 16 september 2002 Delen Geplaatst: 16 september 2002 Is het mogelijk om een array als resultaat van een functie te geven? Quote Link naar reactie
anoniem Geplaatst: 16 september 2002 Auteur Delen Geplaatst: 16 september 2002 Als je Strings, integers en ander spul als resultaat / variabele / waarde uit een methode / functie kunt laten komen, waarom dan geen Array???? :D Quote Link naar reactie
anoniem Geplaatst: 16 september 2002 Auteur Delen Geplaatst: 16 september 2002 Dacht ik dus ook, maar tot nog toe is 't me niet gelukt. Quote Link naar reactie
anoniem Geplaatst: 17 september 2002 Auteur Delen Geplaatst: 17 september 2002 [quote:477598dbd8="SabineBos"]Als je Strings, integers en ander spul als resultaat / variabele / waarde uit een methode / functie kunt laten komen, waarom dan geen Array???? :D[/quote:477598dbd8] Waarom geen array? Omdat een array op zich [i:477598dbd8]geen[/i:477598dbd8] datatype is. M.a.w. Het kan dus niet. Je kunt een funktie ieder [i:477598dbd8]datatype[/i:477598dbd8] laten retourneren, zelfs UDT's. Wat je wel kunt doen is een array als argument meegeven aan een funktie, dan kun je binnen die funktie ermee doen wat je wilt. Zoiets dus: [code:1:477598dbd8] Private Sub Command1_Click() Dim intArray(5) As Integer FuncPassArray intArray MsgBox CStr(intArray(0)) & " " & CStr(intArray(1)) & " " & CStr(intArray(2)) & " " & CStr(intArray(3)) End Sub Public Function FuncPassArray(intArray() As Integer) intArray(0) = 1 intArray(1) = 2 intArray(2) = 3 intArray(3) = 4 End Function [/code:1:477598dbd8] Quote Link naar reactie
anoniem Geplaatst: 17 september 2002 Auteur Delen Geplaatst: 17 september 2002 Over her algemeen declareren wij arrays als variant en zijn prima door te passen. Wel zelf je datachecks uitvoeren.... Quote Link naar reactie
anoniem Geplaatst: 17 september 2002 Auteur Delen Geplaatst: 17 september 2002 [quote:673794bff0="Tazzie"]Over her algemeen declareren wij arrays als variant en zijn prima door te passen. Wel zelf je datachecks uitvoeren....[/quote:673794bff0] Het kan geen kwaad de vraag eerst te lezen. :-? Die gaat over het retourneren van een array, niet over het passen. Het passen van een array gaf ik als alternatief voor het retourneren. Quote Link naar reactie
anoniem Geplaatst: 17 september 2002 Auteur Delen Geplaatst: 17 september 2002 Is er een wezenlijk verschil tussen het doorgeven als parameter en het retourneren van een variabele dan? Greetz, Taz Quote Link naar reactie
anoniem Geplaatst: 17 september 2002 Auteur Delen Geplaatst: 17 september 2002 [quote:f27bfee584="Tazzie"]Is er een wezenlijk verschil tussen het doorgeven als parameter en het retourneren van een variabele dan? Greetz, Taz[/quote:f27bfee584] Dit is toch geen serieuze vraag hoop ik :o Maar om het antwoord simpel te houden: parameter is input voor de funktie, returnwaarde het resultaat. Zeg maar, de waarde die de expressie krijgt. Natuurlijk, als je de variabele als pointer gebruikt (ByRef, de default in VB) kun je hem ook gebruiken om waardes terug te geven. En dat is precies wat mijn voorbeeld doet. Dus bijv. in een funktie: Public Function GeefResultaat(intWaarde as integer) as Boolean GeefResultaat = True 'Is dit is de returnwaarde en intWaarde de parameter. End Function Quote Link naar reactie
anoniem Geplaatst: 17 september 2002 Auteur Delen Geplaatst: 17 september 2002 Dit is toch geen serieuze vraag hoop ik :-) >>Maar om het antwoord simpel te houden: >>parameter is input voor de funktie, returnwaarde het resultaat. Zeg >>maar, de waarde die de expressie krijgt Dat bedoel ik niet. Waar jij het overhebt is terminologie. Een parameter wordt door de aanroepende functie doorgegeven naar de aangeroepen functie. Een returwaarde wordt door de aangeroepen functie teruggegeven aan de aanroepende functie... Qua techniek is er geen verschil. Beiden passen een variabele door van de ene functie naar de andere... Dat is wat ik bedoel met wezenlijk verschil... Greetz, Taz Quote Link naar reactie
anoniem Geplaatst: 17 september 2002 Auteur Delen Geplaatst: 17 september 2002 Nee, een returnwaarde is weliswaar variabel, maar geen gealloceerde variabele. Een variabele is hoe dan ook ergens gedeclareerd. Een returnwaarde niet. Denk aan expressies en je weet wat het verschil is. Quote Link naar reactie
anoniem Geplaatst: 17 september 2002 Auteur Delen Geplaatst: 17 september 2002 Ik heb hem toch gedeclareerd in de functie signature? Goed, hij is niet gedeclareerd in een dim, private of public statement, maar wel kenbaar gemaakt aan het systeem. Bij compilatie weet de compiler de grootte van het te passen datablok. Wellicht dat je het me wat beter uit kan leggen...? Greetz, Taz Quote Link naar reactie
anoniem Geplaatst: 17 september 2002 Auteur Delen Geplaatst: 17 september 2002 De funktie getrouwd heeft hier geen parameter, wel een returnwaarde. [code:1:73f876b3f3] Public Function Getrouwd() as Boolean ' Hier kan een hele hoop code staan om uiteindelijk tot de conclusie te komen dat het resultaat True is. Het resultaat wordt nergens opgeslagen. 'Merk op dat Getrouwd de naam van de funktie is, geen variabelenaam. If "ouder dan 16" And 'draagt een ring" then Getrouwd = True Else Getrouwd = False End if End Function Private Sub Command1_Click() If Getrouwd then MsgBox ("Joepie, of jammer, vul maar in") En if End sub [/code:1:73f876b3f3] Getrouwd is hier geen stukje data, maar, inderdaad, een expressie (Een uitdrukking, een reeks van bewerkingen, met een bepaald resultaat zoals het vaak in C-boekjes wordt omschreven). Quote Link naar reactie
anoniem Geplaatst: 17 september 2002 Auteur Delen Geplaatst: 17 september 2002 En hij hoeft nergens in het geheugen op te slaan dat de expressie Getrouwd True moet zijn of False? Ook niet als deze expressie ergens in het begin van het functieblock al wordt toegekend, maar slechts later wordt veranderd? Klinkt eerder als waar deze waarden worden gealloceerd, op de Hype of de Stack... Greetz, Taz Quote Link naar reactie
anoniem Geplaatst: 17 september 2002 Auteur Delen Geplaatst: 17 september 2002 Wat een discussie opeens. :) Anyway, 't is idd opgelost door het returntype Variant te maken. Quote Link naar reactie
anoniem Geplaatst: 17 september 2002 Auteur Delen Geplaatst: 17 september 2002 Sorry voor de discussie in jouw thread, maar ben erg leergierig.... :-) Mooi dat het weer werkt. Kleine opmerking, een variant datatype neemt wel iets meer geheugen in beslag. Gebruik ze dus spaarzaam. Greetz, Taz Quote Link naar reactie
anoniem Geplaatst: 17 september 2002 Auteur Delen Geplaatst: 17 september 2002 Weet ik, maar de functie wordt (via een DLL) aangeroepen uit een ASP-pagina, en daar kan ik alleen maar met Varianten werken. Dat vind ik altijd zo waardeloos aan die scripttalen. Quote Link naar reactie
anoniem Geplaatst: 18 september 2002 Auteur Delen Geplaatst: 18 september 2002 [quote:f61b3cfbc1="Bigfoot"]Weet ik, maar de functie wordt (via een DLL) aangeroepen uit een ASP-pagina, en daar kan ik alleen maar met Varianten werken. Dat vind ik altijd zo waardeloos aan die scripttalen.[/quote:f61b3cfbc1] Dat is een brok info die je wel in je vraag had mogen vermelden. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen