von: https://learn.microsoft.com/de-de/dotne ... verloadingDas Überladen einer Prozedur bedeutet, sie in mehreren Versionen zu definieren, wobei derselbe Name, aber verschiedene Parameterlisten verwendet werden. Der Zweck der Überladung besteht darin, mehrere eng verwandte Versionen eines Verfahrens zu definieren, ohne sie nach Namen unterscheiden zu müssen. [...]
Daraus dass PureBasic keine Überladung ermöglicht, schlussfolgere ich:
- die unterschiedlichen Verfahrensversionen müssen per Namen unterschieden werden, es sei denn es ermöglichen sich bedingte Teilverfahren per optionalen Parametern (was aber einen gehörigen Unterschied zur Überladung darstellen kann)
- enge Verwandschaft zwischen Verfahrensversionen kann umständlicher geschaffen werden, indem alle Parameter außerhalb der Funktion (etwa "global") festgeschrieben werden und die Funktion selbst dann alle Fallunterscheidungen unternimmt um die Datenlage zu klären (zum Beispiel: untersucht, was alles bei #null oder #empty$ steht).
Für letzteren Punkt gibt es da eine Problematik: alle Parameternamen müssen ja innerhalb eines die Funktion umgebenden Namensraumes erkennbar definiert sein (außer bei Kleinstprogrammen) und in die Funktion eingebunden werden. Was ist dafür besser, "global" oder "shared", bzw. gibt es da überhaupt einen zu beachtenden Unterschied?
Hattet Ihr mal Fälle in denen Soetwas relevant wurde und wie seid Ihr damit umgegangen? Und: Könnte man auf Maschinencodeebene feststellen, dass es herstellergemachte Geschwindigkeitsunterschiede zwischen VBs Überladungen und PBs expliziteren Wegen gibt?