2010-08-25 21 views
11

Ich versuche herauszufinden, was ich hier falsch mache, aber ich kann nicht scheinen. Ich habe diese Methode, die einen String aufnimmt und ihn umkehrt. Wenn ich jedoch die umgekehrte Zeichenfolge aus der Caller-Methode ausdruck, bekomme ich nur "System.Char []" anstelle der tatsächlichen umgekehrten Zeichenfolge.Warum wird System.char [] in diesem Fall ausgedruckt?

static string reverseString(string toReverse) 
    { 
     char[] reversedString = toReverse.ToCharArray(); 
     Array.Reverse(reversedString); 
     return reversedString.ToString(); 
    } 

Antwort

11

Aufruf ToString auf einem T Array in .NET wird immer "T[]" zurück. Sie möchten dies stattdessen verwenden: new string(reversedString).

+0

Wow, danke! Das hat funktioniert! – Waffles

6

Mit dem Aufruf ToString erhalten Sie nur die Standardimplementierung, die jede Klasse von object erbt. .NET kann keine spezielle Implementierung nur für ein Array von Zeichen bereitstellen. Die Überschreibung müsste für alle Arten von Arrays gelten.

Stattdessen können Sie das Array an String-Konstruktor return new String(reversedString) übergeben.

Verwandte Themen