Mehrere Rückgabewerte bei Function

Hi
Ich würde gerne wissn wie man bei function mehrere Rückgabewerte programmiert

Im speziellen würde ich gerne in der Funktion entscheiden ob ich einen oder 2 Rückgabewerte haben will.

es bedankt sich im voraus

Greenberet *ders schon vergeblich mit Arrays versucht hat*

Hallo!

Du kannst als RückgabeTypen einer Funktion eine benutzerdefinierte Variable(mit type) benutzen

z.B.:

'Deklaration des benutzerdefinierten typs
private type meintype_m
modus as integer
wert1 as string
wert2 as string
end type
dim MeinType as meintype_m

private function Vertauschen(Parameter1 as string, Parameter2 as string) as MeinType

randomize timer

with Vertauschen
.modus=int(2*rnd)

if .modus=1 then
.wert1=parameter1:.wert2=parameter2
else
.wert1=parameter2:.wert2=parameter1
end if
end with
End function

'Und jetzt der aufruf
private sub Form_load()
dim mytype as meintype_m 'damit die ergebnisse der funktion gespeichert bleiben
mytype = Vertauschen(„Hallo!“, „Test“)

with mytype
if .modus=1 then
msgbox „Werte wurden nicht vertauscht!“ & vbcrlf & .wert1 & ", " & wert2
else
msgbox „Werte wurden vertauscht!“ & vbcrlf & .wert1 & ", " & wert2
end if
end with
end sub

'PS: keine garantie auf fehlerfreiheit! :wink:

Grüsse
Thomas

Dankäää

WEnn du gesagt hättest das er benutzerdefinierte Variablen nimmt hätte es gereicht :wink:

Greenberet *der schön langsam wieder glaubt das es noch nette Menschen gibt*

1 Like

es geht auch so:

function foo (byref bar as string, byref baz as long)
 bar="hello"
 baz=99
end function
'
dim s as string, l as long
s="dummy": l=0
foo (s,l)
msgbox s & " " & l

gibt „hello 99“ aus.

grüße, holli

Das geht in keiner Programmiersprache, die ich näher kenne.
Je nach Sprache kannst du entweder ein Array oder einen selbst definierten Typ / Objekt. etc. zurückgeben oder eben wie Markus sagte, die Funktionsparameter selber als Referenzparameter benutzen, so dass die übergebenen Variablen direkt von der Funktion geändert werden.

MfG bruno