2017-02-06 13 views
7

Co jest nie tak z moim kodem? Tu jest mój kodu:Ciąg wejściowy C# miał niepoprawny format?

public override string ToString() 
{ 
    return String.Format("Number : {0} \nFloors:{1} \nStreet \n{ \nName : {2},\nLength : {3}\n}",Number,Floors,Street.Name,Street.Length); 
} 
+0

Jakie są rodzaje numerów, pięter, nazw ulic i ulic? –

+0

Liczba, piętra i długość to int Nazwa jest ciągiem –

+2

Typ nie ma znaczenia, ponieważ i tak nie ma opcji formatowania. –

Odpowiedz

19

Musisz uciec swoje nawiasów klamrowych:

"Number : {0} \nFloors:{1} \nStreet \n{{ \nName : {2},\nLength : {3}\n}}" 

Jeśli potrzebujesz { lub } w wynikowym ciągu znaków, trzeba uciec je jako {{ i }}.

+0

To działa. Dziękuję. –

+1

@ErikHakobyan Ponieważ odpowiedź działa dla Ciebie, rozważ zaakceptowanie jej, klikając szary znacznik wyboru obok niej. Dzięki temu inni użytkownicy witryny będą wiedzieć, że znaleźli Państwo odpowiedź i otrzymują nową odznakę w Stack Overflow. – dasblinkenlight

+0

Ja to robię. Dzięki. –

8

z C# 6 użyję interpolacji wyrażenie:

public override string ToString() 
{ 
    return $"Number : {Number} \nFloors:{Floors} \nStreet \n{{ \nName : {Street.Name},\nLength : {Street.Length}\n}}"; 
} 

Plus: jak stwierdził Manfred Radlwimmer, trzeba uciec { jako {{ i } jako }}.

1

Jeśli nie C# 6, działają na StringBuilder.

Powiązane problemy