Formatowanie złożone za pomocą string.Format
Używaj indeksowanych symboli zastępczych i wyrównania.
Formatowanie złożone za pomocą string.Format to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 4 lekcji w sumie.
Formatowanie złożone
string.Format używa numerowanych symboli zastępczych, takich jak {0} i {1}, które odpowiadają kolejnym przekazanym argumentom.
using System;
class Program {
static void Main() {
string msg = string.Format("Hello, {0}!", "Ada");
Console.WriteLine(msg);
}
}Wiele argumentów
Każdy indeks wskazuje argument na podstawie jego pozycji. {0} oznacza pierwszy argument, {1} drugi i tak dalej.
using System;
class Program {
static void Main() {
Console.WriteLine(string.Format("{0} + {1} = {2}", 2, 3, 5));
}
}Ponowne użycie indeksu
Można użyć tego samego indeksu więcej niż raz, aby powtórzyć argument bez przekazywania go dwukrotnie.
using System;
class Program {
static void Main() {
Console.WriteLine(string.Format("{0}{0}{0}", "ab"));
}
}Specyfikator formatu po dwukropku
Proszę dodać dwukropek i specyfikator, aby określić sposób formatowania, na przykład {0:F2} oznacza dwie cyfry po przecinku.
using System;
class Program {
static void Main() {
Console.WriteLine(string.Format("Pi is {0:F2}", 3.14159));
}
}Wyrównanie za pomocą przecinka
Przecinek i szerokość określają wyrównanie: {0,8} wyrównuje do prawej w polu o szerokości ośmiu znaków, a ujemna szerokość wyrównuje do lewej.
using System;
class Program {
static void Main() {
Console.WriteLine(string.Format("[{0,8}]", "hi"));
Console.WriteLine(string.Format("[{0,-8}]", "hi"));
}
}Połączenie wyrównania i formatu
Można połączyć obie opcje: {0,10:F2} formatuje liczbę do dwóch cyfr po przecinku i wyrównuje ją do prawej w polu o szerokości dziesięciu znaków.
using System;
class Program {
static void Main() {
Console.WriteLine(string.Format("[{0,10:F2}]", 3.5));
}
}Formatowanie za pomocą Console.WriteLine
Console.WriteLine bezpośrednio przyjmuje ten sam złożony ciąg formatujący i argumenty.
using System;
class Program {
static void Main() {
Console.WriteLine("{0} scored {1} points", "Sam", 42);
}
}Tworzenie tabeli
Wyrównanie ułatwia tworzenie prostych, wyrównanych tabel w danych wyjściowych konsoli.
using System;
class Program {
static void Main() {
Console.WriteLine(string.Format("{0,-10}{1,5}", "Apples", 3));
Console.WriteLine(string.Format("{0,-10}{1,5}", "Pears", 12));
}
}Do tego kompiluje się interpolacja
Za kulisami interpolowane ciągi znaków często są kompilowane do formatowania złożonego. Są to dwa sposoby korzystania z tej samej funkcji.
using System;
class Program {
static void Main() {
int n = 5;
Console.WriteLine(string.Format("n = {0}", n));
Console.WriteLine($"n = {n}");
}
}Escapowanie nawiasów klamrowych
Podobnie jak w przypadku interpolacji, aby wydrukować nawias klamrowy dosłownie w złożonym ciągu formatującym, należy zapisać go dwukrotnie.
using System;
class Program {
static void Main() {
Console.WriteLine(string.Format("{{0}} shows literally, {0} shows value", 7));
}
}Kiedy wybrać formatowanie
Formatowanie złożone jest przydatne, gdy szablon jest przechowywany osobno, na przykład w plikach zasobów używanych do lokalizacji.
using System;
class Program {
static void Main() {
string template = "Welcome, {0}";
Console.WriteLine(string.Format(template, "Lee"));
}
}Szybki test
Proszę sprawdzić swoją wiedzę na temat formatowania złożonego.
Podsumowanie
string.Format używa indeksowanych symboli zastępczych ({0}, {1}) mapowanych na argumenty według pozycji, które można ponownie wykorzystywać. Dwukropek dodaje specyfikatory formatu, a przecinek ustawia szerokość wyrównania.
Mechanizm ten obsługuje formatowanie w Console.WriteLine i stanowi podstawę interpolacji. Jest też idealny, gdy szablony znajdują się w osobnych zasobach.
Często zadawane pytania
Czy lekcja „Formatowanie złożone za pomocą string.Format” jest bezpłatna?
Tak — pełny tekst „Formatowanie złożone za pomocą string.Format” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Formatowanie złożone za pomocą string.Format”?
Używaj indeksowanych symboli zastępczych i wyrównania. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć C# Academy?
Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Formatowanie złożone za pomocą string.Format”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?
Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy interpolacji ciągów znaków
- Formatowanie złożone za pomocą string.Format
- Specyfikatory formatu liczb i dat
- Surowe literały ciągów znaków