Handle Reference
-
Hallo,
wahrscheinlich stehe ich gerade auf dem Schlauch, aber wie kann ich eine Referenz auf ein Stringhandle an eine Funktion übergeben, sodass ich den String innerhalb der Funktion ändern kann, wie z.B. FuncInt(...) in meinem Beispiel?Peter
void FuncInt( int %n ) { n = 0; } void FuncString( String ^str) { str->Concat(str, " world"); } int main(array<System::String ^> ^args) { int k = 1; FuncInt( k ); Console::WriteLine( k ); String ^str = "hello"; FuncString( str ); Console::WriteLine( str ); return 0; }
-
void FuncString(String^% str) { str->Concat(str, " world"); }
-
Hallo Simon,
das hatte ich bereits versucht. Es wird zwar fehlerfrei kompiliert, allerdings wird der String in main(...) nicht verändert. Mit pointer war "früher" alles so einfach
Gruss
Peter
-
System::String ist unveränderbar.
Du musst schreiben:str = str->Concat(str, " world");
Dieses Verhalten kann auch in native C++ auftreten.
-
Oja, da konnte ich ja lange an der falschen Stelle suchen.
Danke vielmals für den Schups in die richtige Richtung!Gruss
Peter