C# Multiline String (jak to działa dla programistów)
Kiedy zaczynasz przygodę z C#, ciągi znaków to jedna z pierwszych rzeczy, których się uczysz. Jesli kiedykolwiek stworzono program Hello, World!, to juz pracowano ze stringami.
W miarę jak będziesz coraz lepiej poznawać język C#, Twoje programy będą stawały się coraz bardziej złożone. Wkrótce zaczniesz pracować z ciągami znaków obejmującymi wiele wierszy. Jeśli jesteś teraz na tym etapie, to masz szczęście, ponieważ w tym przewodniku wyjaśnimy, czym są ciągi wielowierszowe i jak z nich korzystać. Zanurzmy się w temat.
Czym jest ciąg wielowierszowy?
Ciągi wielowierszowe są dokładnie tym, na co wskazuje ich nazwa — ciągami obejmującymi wiele wierszy, w przeciwieństwie do zwykłych ciągów jednowierszowych. Wielowierszowy ciąg znaków w języku C# tworzy się za pomocą literałów łańcuchowych, które są serią znaków ujętych w podwójne cudzysłowy. Aby utworzyć ciągi wielowierszowe, musimy użyć specjalnego typu literałów łańcuchowych zwanych literałami łańcuchowymi verbatim.
Magia ciągów znaków Verbatim
Aby utworzyć wielowierszowy literał łańcuchowy w języku C#, używamy łańcuchów dosłownych. Stringi doslowne sa poprzedzone symbolem @ i pozwalaja na wlaczenie zlaman linii, znakow specjalnych, a nawet bialych znakow bez uzycia sekwencji ucieczki.
Oto przykład wielowierszowego ciągu znaków wykorzystującego ciąg dosłowny:
string str = @"This is a
multiline string
in C#.";
string str = @"This is a
multiline string
in C#.";
Dim str As String = "This is a
multiline string
in C#."
String str zawiera trzy linie, a kazda linia jest oddzielona zlamiem linii. Zauwaz uzycie symbolu @ do stworzenia stringu doslownego.
Znaki escape w ciągach znaków typu verbatim
Mogą wystąpić sytuacje, w których konieczne będzie umieszczenie cudzysłowów w ciągu znaków cytowanego tekstu. W tym celu należy używać podwójnych cudzysłowów. Na przykład:
string str = @"This is a
""multiline""
string in C#.";
string str = @"This is a
""multiline""
string in C#.";
Dim str As String = "This is a
""multiline""
string in C#."
W tym przykladzie, string str zawiera slowo "multiliniowe" w cudzyslowie, co osiaga sie poprzez uzycie podwojnych cudzyslowow wewnatrz stringu doslownego.
Łączenie ciągów wielowierszowych
Często może zaistnieć potrzeba połączenia ciągów wielowierszowych z innymi ciągami lub wartościami. Aby polaczyc string multiliniowy z innymi wartosciami stringowymi, mozna uzyc operatora +, tak jak w przypadku stringow jednoliniowych.
string name = "John";
string str = @"Hello, " + name + @",
Welcome to the
world of C# multiline strings!";
string name = "John";
string str = @"Hello, " + name + @",
Welcome to the
world of C# multiline strings!";
Dim name As String = "John"
Dim str As String = "Hello, " & name & ",
Welcome to the
world of C# multiline strings!"
Tutaj, polaczylismy string multiliniowy ze stringiem jednoliniowym name.
Formatowanie ciągów wielowierszowych
W przypadku pracy z ciągami wielowierszowymi można je formatować za pomocą zmiennych lub wyrażeń. Aby sformatowac string multiliniowy, mozna uzyc symbolu $ do interpolacji stringu.
int age = 25;
string str = $@"Hello, I am {age} years old,
and I am learning
C# multiline strings!";
int age = 25;
string str = $@"Hello, I am {age} years old,
and I am learning
C# multiline strings!";
Dim age As Integer = 25
Dim str As String = $"Hello, I am {age} years old,
and I am learning
C# multiline strings!"
Uzyto interpolacji stringu, aby wlaczyc wartosc zmiennej age do stringu multiliniowego.
Konwersja ciągów wielowierszowych na ciągi jednowierszowe
Czasami moze zajsc potrzeba konwersji wielowierszowych lancuchow znakow na jednoliniowe. Aby to osiagnac, mozna uzyc metody Replace do zamiany zlaman linii na spacje lub inny pozadany znak.
string multilineString = @"This is a
multiline string
in C#.";
string singleLineString = multilineString.Replace(Environment.NewLine, " ");
string multilineString = @"This is a
multiline string
in C#.";
string singleLineString = multilineString.Replace(Environment.NewLine, " ");
Dim multilineString As String = "This is a
multiline string
in C#."
Dim singleLineString As String = multilineString.Replace(Environment.NewLine, " ")
Zastapilismy zlamania linii w wielowierszowym lancuchu znakow spacja, co dalo wynik w postaci jednoliniowego lancucha znakow.
Obsługa długich ciągów znaków
Czasami bardzo dlugie lancuchy znakow moga byc trudne do odczytania w kodzie. Aby uczynic kod bardziej czytelnym, mozna podzielic dlugie stringi na wiele linii uzywajac operatora +.
string longString = "This is a very long string that " +
"needs to be split across " +
"multiple lines for better readability.";
string longString = "This is a very long string that " +
"needs to be split across " +
"multiple lines for better readability.";
Dim longString As String = "This is a very long string that " & "needs to be split across " & "multiple lines for better readability."
Podzielilismy dlugi string jednoliniowy na trzy czesci i polaczylismy je za pomoca operatora +, czyniac kod bardziej czytelnym.
Tworzenie wielowierszowych literałów łańcuchowych za pomocą literałów łańcuchowych typu raw
W C# 10 wprowadzono nową funkcję o nazwie literały ciągów surowych. To pozwala na tworzenie doslownych stringow multiliniowych bez uzycia symbolu @. Aby stworzyc doslowny string surowy, obejmujemy string potrojnymi cudzyslowami ("""). Literale łańcuchów surowych zachowują wszystkie znaki, w tym znaki końca linii, w potrójnych cudzysłowach. Na przykład:
string str = """This is a
multiline string
using raw string literals in C# 10.""";
string str = """This is a
multiline string
using raw string literals in C# 10.""";
Dim str As String = """This is a multiline string using raw string literals in C# 10."""
Stworzyliśmy ciąg wielowierszowy przy użyciu literałów ciągu surowego. Zwróć uwagę na użycie potrójnych cudzysłowów do ujęcia ciągu znaków.
Znaki escape w literałach łańcuchów surowych
Podobnie jak w przypadku ciągów dosłownych, może zaistnieć potrzeba umieszczenia cudzysłowów w naszych surowych literałach łańcuchowych. W tym celu możemy użyć podwójnych cudzysłowów. Na przykład:
string str = """This is a
""multiline""
string using raw string literals in C# 10.""";
string str = """This is a
""multiline""
string using raw string literals in C# 10.""";
Dim str As String = """This is a ""multiline"" string using raw string literals in C# 10."""
W literałach łańcuchów surowych umieściliśmy podwójne cudzysłowy, używając podwójnych cudzysłowów.
Łączenie literałów dosłownych i surowych
W niektórych przypadkach może być wskazane połączenie cech literałów dosłownych i surowych. Mozna to zrobic, uzywajac symbolu @, po ktorym następuja potrojne cudzyslowy.
string str = @"""This is a
multiline string
using both verbatim and raw string literals in C# 10.""";
string str = @"""This is a
multiline string
using both verbatim and raw string literals in C# 10.""";
Dim str As String = """This is a
multiline string
using both verbatim and raw string literals in C# 10."""
W tym przykładzie utworzyliśmy ciąg wielowierszowy przy użyciu zarówno literałów dosłownych, jak i surowych. Zauwaz uzycie symbolu @, po ktorym nastepuja potrojne cudzyslowy.
Wykorzystanie ciągów wielowierszowych do generowania plików PDF w IronPDF
IronPDF to lekka biblioteka .NET do obsługi plików PDF, zaprojektowana specjalnie z myślą o programistach stron internetowych. Dzięki temu czytanie, pisanie i edycja plików PDF staje się dziecinnie prosta, umożliwia konwersję wszelkiego rodzaju plików do formatu PDF, a ponadto można z niego korzystać w projektach .NET zarówno na komputery stacjonarne, jak i w sieci. Najlepsze jest to, że można wypróbować to rozwiązanie w środowisku programistycznym za darmo.
Oto jak wykorzystać wielowierszowy ciąg znaków HTML do utworzenia pliku PDF w IronPDF:
string name = "John";
string age = "25";
string content = $@"<!DOCTYPE html>
<html>
<body>
<h1>Hello, {name}!</h1>
<p>You are {age} years old.</p>
<p>This is a
multiline string
used to generate a PDF
with IronPDF and dynamic content.</p>
</body>
</html>";
// Create a new PDF document using IronPDF
var pdfDocument = new IronPdf.ChromePdfRenderer();
pdfDocument.RenderHtmlAsPdf(content).SaveAs("c://BioData.pdf");
string name = "John";
string age = "25";
string content = $@"<!DOCTYPE html>
<html>
<body>
<h1>Hello, {name}!</h1>
<p>You are {age} years old.</p>
<p>This is a
multiline string
used to generate a PDF
with IronPDF and dynamic content.</p>
</body>
</html>";
// Create a new PDF document using IronPDF
var pdfDocument = new IronPdf.ChromePdfRenderer();
pdfDocument.RenderHtmlAsPdf(content).SaveAs("c://BioData.pdf");
Dim name As String = "John"
Dim age As String = "25"
Dim content As String = $"<!DOCTYPE html>
<html>
<body>
<h1>Hello, {name}!</h1>
<p>You are {age} years old.</p>
<p>This is a
multiline string
used to generate a PDF
with IronPDF and dynamic content.</p>
</body>
</html>"
' Create a new PDF document using IronPDF
Dim pdfDocument = New IronPdf.ChromePdfRenderer()
pdfDocument.RenderHtmlAsPdf(content).SaveAs("c://BioData.pdf")
W tym przykladzie uzylismy interpolacji stringu, aby wlaczyc zmienne name i age do naszego stringu multiliniowego, czyniac nasza zawartosc PDF dynamiczna i dostosowywana. Stworzyliśmy wielowierszowy ciąg znaków zawierający treść, którą chcieliśmy umieścić w pliku PDF. Nastepnie zainstancjonowano klase ChromePdfRenderer z przestrzeni nazw IronPDF i uzyto metody RenderHtmlAsPdf do konwersji zawartosci stringu multiliniowego na dokument PDF. Na koniec zapisaliśmy dokument PDF w pliku o nazwie "BioData.pdf".
Wnioski
To była krótka wycieczka po wszechstronnym świecie ciągów wielowierszowych. Teraz, gdy jesteś już profesjonalistą w zakresie ciągów wielowierszowych w języku C#, możesz zacząć wdrażać je w swoich projektach — na przykład tak, jak w powyższym przykładzie z IronPDF.
Chcesz wypróbować IronPDF? Możesz zacząć od 30-dniowego okresu próbnego IronPDF. Można z niego korzystać całkowicie za darmo do celów programistycznych, więc naprawdę możesz sprawdzić, na czym to polega. A jezeli podoba ci sie to, co widzisz, IronPDF zaczyna sie juz od $999 za licencje IronPDF. Aby uzyskać jeszcze większe oszczędności, sprawdź pakiet Iron Suite, w którym możesz otrzymać wszystkie dziewięć narzędzi Iron Software w cenie dwóch. Miłego kodowania!

Często Zadawane Pytania
Jak utworzyć napis wielowierszowy w C#?
W C# można utworzyć napis wielowierszowy używając literałów napisowych dosłownych, poprzedzając napis symbolem '@'. Pozwala to na bezpośrednie włączenie przerw w linii i specjalnych znaków w napisie.
Jaki jest cel używania literałów napisowych dosłownych w C#?
Literały napisowe dosłowne w C# są używane do tworzenia napisów, które zachowują przerwy w linii i specjalne znaki bez konieczności używania sekwencji ucieczkowych. Oznaczone są symbolem '@', co czyni je idealnymi do pisania napisów wielowierszowych.
Jak obsługiwać specjalne znaki, takie jak cudzysłowy, w napisach dosłownych?
W napisach dosłownych można włączyć cudzysłowy, używając podwójnych cudzysłowów. Na przykład, '@"To jest ""wielowierszowy"" napis."' pozwala na włączenie cudzysłowów w napisie.
Czym są surowe literały napisowe w C# 10 i jak działają?
Surowe literały napisowe wprowadzone w C# 10 pozwalają na tworzenie napisów wielowierszowych bez użycia symbolu '@'. Są one objęte potrójnymi cudzysłowami i zachowują wszystkie znaki, łącznie z przerwami w linii, dokładnie tak, jak się pojawiają.
Jak można używać napisów wielowierszowych w generowaniu PDF?
Napisy wielowierszowe mogą być używane do tworzenia dynamicznej zawartości w formacie HTML, której następnie można używać do konwersji na dokumenty PDF za pomocą bibliotek takich jak IronPDF, które wspierają konwersję HTML na PDF.
Czym jest interpolacja napisów i jak się ją stosuje do napisów wielowierszowych?
Interpolacja napisów w C# pozwala na wstawianie zmiennych lub wyrażeń w napisy używając symbolu '$'. Może być używana z napisami wielowierszowymi, aby bezproblemowo włączyć dynamiczną zawartość.
Jak przekonwertować napis wielowierszowy na jednoliniowy w C#?
Aby przekonwertować napis wielowierszowy na jednoliniowy, można użyć metody Replace, aby zastąpić przerwy w linii spacjami lub innym znakiem. Na przykład: multilineString.Replace(Environment.NewLine, " ").
Dlaczego deweloperzy powinni używać bibliotek do generowania PDF w aplikacjach .NET?
Biblioteki przeznaczone do generowania PDF w .NET, takie jak IronPDF, upraszczają proces czytania, pisania i manipulacji plikami PDF. Wspierają konwersję różnych typów plików na PDF, zapewniając potężne narzędzia dla aplikacji desktopowych i webowych.




