Korrekte Parameterübergabe?
-
Hi,
hab n nem Builderprojekt ne Funnktion definiert:
GetAnsiString(AnisString sText)
Nun kann man die Funktion z.B. so aufraufen:
...
AnisString sPerson = "AlBundy";
GetAnsiString(sPerson);
...Nun geht auch folgendes (ohne eine Varaible definiert zu haben)
...
GetAnsiString("AlBundy");
...Funktionuckelt zwar, kommt mir aber komisch vor. Gibt es irgendwelche programmiertechnischen Einwände gegen Version 2?
Gruß
Al
-
Original erstellt von AlTheKingBundy:
Funktionuckelt zwar, kommt mir aber komisch vor. Gibt es irgendwelche programmiertechnischen Einwände gegen Version 2?Wieso komisch? Da wird implizit einfach der AnsiString Konstruktor mit dem übergebenen konstanten String aufgerufen und damit ein AnsiString-Objekt produziert. (Passiert übrigens auch bei deinem anderen Beispiel oder bei Additionen von Strings etc.)
Einwende gibts ne Menge: Grundsätzlich sollte man keine Strings hardcoden. Strings sollten eigentlich maxmial in Resourcen gespeichert werden. Manchmal gibt es dinge, die sich nie ändern, die kann man stehen lassen. Ist aber selten. Das ist allerdings eher ein Softwaretechnischer/Entwicklungs/Konzept Aspekt und hat weniger mit Programmiertechnik zu tun.
-junix