2010-11-19 12 views
24

Jestem nowy w programowaniu w języku C#. Może ktoś proszę wyjaśnić następujący kod:Ciągi formatów w metodzie Console.WriteLine

Console.WriteLine("{0}{1,10}", "Face", "Frequency"); //Headings 
Console.WriteLine("{0,4}{1,10}",someval,anotherval); 

Rozumiem, że drukuje dwie kolumny z wartościami z pozycjami podanymi i {0} odnosi się do pierwszego argumentu danym. Ale jakie jest znaczenie ciągów formatu w postaci {x,y}?

Odpowiedz

53

Dodaje dopełnienie po lewej stronie. Bardzo przydatny dla pamiętając różne wzory formatowania ciąg jest następujący Ściągawka:

.NET String.Format Cheat Sheet

Wartości dodatnie dodać dopełnienie do lewej, ujemny add dopełnienia w prawo

 
Sample         Generates 
String.Format("[{0, 10}]", "Foo");  [∙∙∙∙∙∙∙Foo] 
String.Format("[{0, 5}]", "Foo");  [∙∙Foo] 
String.Format("[{0, -5}]", "Foo");  [Foo∙∙] 
String.Format("[{0, -10}]", "Foo"); [Foo∙∙∙∙∙∙∙] 
+0

Dzięki za odpowiedź 0xA3. Jeśli rozumiem poprawnie, to znaczy, że {1,10} wydrukuje drugi argument i 10 spacji zaraz po nim? – Joe

+0

@Joe: Nie, wypełnienie oznacza, że ​​ciąg znaków jest wypełniony pustymi miejscami do określonej długości, zobacz przykład w mojej odpowiedzi. –

+2

O ile widzę, ten arkusz oszukiwania jest całkowicie błędny! Zastosowano niewłaściwy indeks, a wyrównanie dodatnie/ujemne jest przeciwieństwem tego, co naprawdę się dzieje. Tak więc, aby utworzyć '[∙∙∙∙∙∙∙ Foo]', faktycznie robisz 'String.Format (" [{0, 10}] "," Foo ");' –

3

Proszę sprawdzić this, aby uzyskać bardzo dobry odnośnik do formatowania napisów.

3

Jest to wartość wyściółka ... jeśli argument nie jest długość, która jest określona, ​​to stawia spacji.

Np jeśli {0,10} i argumentem dla {0} było "Blah", rzeczywista wartość wydrukowana byłaby "Blah<SPACE><SPACE><SPACE><SPACE><SPACE><SPACE>" ... Bla, z 6 dodatkowymi odstępami, aby utworzyć ciąg 10 długości

ps - nie wiem, jak umieścić rzeczywiste przestrzenie w ... potrzeby patrzenia tak FAQ bez wątpienia

8

Kiedy widzisz {x,y}, x reprezentuje indeks argument i y wyrównania, zgodnie here. Pełna składnia jest następująca:

{index[,alignment][:formatString]}