Parameter/Funktion überladen
Verfasst: 29.08.2020 21:55
Da es in PB kein "Function overloading" gibt, (also das Aufrufen der selben Prozedur mit unterschiedlichen Parametertypen) habe ich mir hierfür folgende Krücke gebaut. Evtl. kann man das ja noch verbessern?
Markus
Code: Alles auswählen
Macro MyFunc(param1, param2)
_MyFunc(#DQUOTE$ + param1 + #DQUOTE$, #DQUOTE$ + param2 + #DQUOTE$)
EndMacro
Macro IsNumber(value)
Bool(Trim(value, #DQUOTE$) = Str(Val(Trim(value, #DQUOTE$))))
EndMacro
Macro ToNumber(value)
Val(Trim(value, #DQUOTE$))
EndMacro
Macro ToString(value)
Trim(value, #DQUOTE$)
EndMacro
Procedure _MyFunc(Param1.s, Param2.s)
If IsNumber(Param1)
Debug "Number: " + ToNumber(Param1)
Else
Debug "String: " + ToString(Param1)
EndIf
If IsNumber(Param2)
Debug "Number: " + ToNumber(Param2)
Else
Debug "String: " + ToString(Param2)
EndIf
EndProcedure
MyFunc("title", "My window title")
MyFunc("width", 350)
MyFunc("height", 600)
MyFunc(33, 600)