跳至頁尾內容
.NET幫助

C# 多行字串(開發者的工作原理)

當您在 C# 入門時,字串是您學到的最早概念之一。 如果您曾經組合過一個 Hello, World! 程式,那麼您已經使用過字串了。

隨著您對 C# 越來越熟悉,您的程式將會變得更複雜。 不久之後,您將開始使用跨多行的字串。 如果您現在正在這個階段,那麼您很幸運,因為在本指南中,我們將解釋什麼是多行字串以及如何使用它們。 讓我們開始吧。

什麼是多行字串?

多行字串正如其名 - 是一個跨多行的字串,與通常的單行字串形成對比。 在 C# 中,多行字串是使用字串常數建立的,即用雙引號包圍的一系列字元。 要形成多行字串,我們需要使用一種特殊型別的字串常數,稱為逐字串常數。

逐字串的魔力

要在 C# 中建立多行字串常數,我們使用逐字串。 逐字串以 @ 符號為前綴,允許我們在不使用逃逸序列的情況下包含換行符、特殊字元,甚至空白。

以下是一個使用逐字串的多行字串範例:

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#."
$vbLabelText   $csharpLabel

字串 str 包含三行,每行都用換行符分隔。 請注意使用 @ 符號來建立逐字串。

在逐字串中逃逸字元

有時您可能需要在逐字串中包含雙引號。 要做到這一點,您必須使用雙重雙引號。 例如:

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#."
$vbLabelText   $csharpLabel

在此例中,字串 str 包含詞語"multiline",其用雙引號括起,這是通過在逐字串中使用雙重雙引號實現的。

串聯多行字串

您可能經常需要將多行字串與其他字串或值組合在一起。 要將多行字串與其他字串值串聯,您可以使用 + 運算符,就像您對單行字串所做的那樣。

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!"
$vbLabelText   $csharpLabel

在這裡,我們將多行字串與單行字串 name 串聯起來。

格式化多行字串

當使用多行字串時,您可以用變數或表達式來格式化它們。 要格式化一個多行字串,您可以使用 $ 符號進行字串插值。

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!"
$vbLabelText   $csharpLabel

我們使用字串插值將變數 age 的值包含在多行字串中。

將多行字串轉換為單行字串

有時,您可能需要將多行字串轉換為單行字串。 為了實現這一點,您可以使用 Replace 方法將換行符替換為空格或任何其他所需的字元。

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, " ")
$vbLabelText   $csharpLabel

我們將多行字串中的換行符替換為空格,從而得到一個單行字串。

處理長字串

有時,非常長的字串在您的程式碼中可能難以閱讀。 為了使程式碼更具可讀性,您可以使用 + 運算符將長字串分成多行。

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."
$vbLabelText   $csharpLabel

我們將長的單行字串分為三部分並使用 + 運算符串聯它們,使程式碼更具可讀性。

使用原始字串常數建立多行字串常數

在 C# 10 中,引入了一個稱為原始字串常數的新功能。 這使我們可以在不使用 @ 符號的情況下建立多行字串常數。 要建立原始字串常數,將字串置於三個引號中 (""")。 原始字串常數保留三個引號中包含的所有字元,包括換行符。 例如:

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."""
$vbLabelText   $csharpLabel

我們使用原始字串常數建立了一個多行字串。 請注意使用三個引號來包裹字串。

在原始字串常數中逃逸字元

與逐字串類似,我們可能需要在原始字串常數中包含雙引號。 要做到這一點,我們可以使用雙重雙引號。 例如:

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."""
$vbLabelText   $csharpLabel

我們通過使用雙重雙引號在原始字串常數中包含雙引號。

將逐字串和原始字串常數結合使用

在某些情況下,我們可能希望結合逐字串和原始字串常數的功能。 這可以通過使用 @ 符號後接三個引號來實現。

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."""
$vbLabelText   $csharpLabel

在此範例中,我們使用逐字串和原始字串常數建立了一個多行字串。 請注意使用 @ 符號後接三個引號。

使用多行字串生成 IronPDF 的 PDF

IronPDF 是一個輕量級的 .NET PDF 程式庫,專為網頁開發者設計。 它使閱讀、寫入和操作 PDF 文件變得輕而易舉,能夠將各型別的文件轉換為 PDF 內容,您可以在您的 .NET 專案中使用它,無論是桌面還是網頁。 最好的部分 - 它在開發環境中是免費試用的。

以下是如何利用 HTML 多行字串在 IronPDF 中建立 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");
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")
$vbLabelText   $csharpLabel

在此範例中,我們使用字串插值在多行字串中包含 nameage 變數,使我們的 PDF 內容動態且可定制。 我們建立了一個包含我們想要放置在 PDF 中內容的多行字串。 然後我們從 IronPDF 命名空間實例化了 ChromePdfRenderer 類,並使用 RenderHtmlAsPdf 方法將多行字串內容轉換為 PDF 文件。 最後,我們將 PDF 文件保存為名為"BioData.pdf"的文件。

結論

而這就是多行字串多樣世界的速覽。 現在您已經是一位多行字串 C# 專家,您可以開始在您的專案中實施它們 - 就像上面 IronPDF 的範例一樣。

想要試用 IronPDF 嗎? 您可以從我們的 IronPDF 30天免費試用 開始。 它在開發目的中完全免費使用,因此您可以真正看到它的功能。 如果您喜歡您的見解,IronPDF 僅需 $999 就可獲得一個 IronPDF 授權。 如需更大的節省,請查看 Iron Suite 套件,您可以以兩個的價格獲得所有九個 Iron Software 工具。 祝您編碼愉快!

Csharp Multiline String 2 related to 結論

常見問題

您如何在 C# 中建立多行字串?

在 C# 中,您可以使用逐字字串常值來建立多行字串,只需在字串前加上 `@` 符號。這允許您直接在字串中包含換行符及特殊字元。

在 C# 中使用逐字字串常值的目的是什麼?

C# 中的逐字字串常值用於建立保留換行和特殊字元的字串,而不需要使用跳脫序列。它們由 `@` 符號表示,使它們成為撰寫多行字串的理想選擇。

您如何在逐字字串中處理像雙引號這樣的特殊字元?

在逐字字串中,您可以通過使用雙雙引號來包含雙引號。例如,'@"這是""多行""字串。' 允許您在字串中包含雙引號。

C# 10 中的原始字串常值是什麼,它們如何運作?

C# 10 引入的原始字串常值允許建立不使用 `@` 符號的多行字串。它們被包在三重引號之中,保留所有字元,包括換行符,完全按照它們出現的樣子。

多行字串如何應用於 PDF 生成?

多行字串可用於建立 HTML 格式的動態內容,然後可以使用像 IronPDF 這樣支援 HTML 轉 PDF 的程式庫轉換成 PDF 文件。

什麼是字串插值以及它如何應用於多行字串?

字串插值在 C# 中允許使用 `$` 符號將變數或表達式嵌入到字串中。它可與多行字串一起使用,以無縫包含動態內容。

如何在 C# 中將多行字串轉換為單行字串?

要將多行字串轉換為單行字串,您可以使用 Replace 方法將換行符替換為空格或其他字元。例如:multilineString.Replace(Environment.NewLine, " ")

為何開發者應在 .NET 應用程式中使用用於 PDF 生成的程式庫?

為 .NET 設計的 PDF 生成程式庫,如 IronPDF,簡化了讀取、撰寫和操作 PDF 的過程。它們支援將各種檔案型別轉換為 PDF,為桌面和 Web 應用程式提供強大的工具集。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

Jacob擁有曼徹斯特大學的土木工程一等榮譽學士學位(BEng),於1998-2001年之間獲得。在1999年於倫敦創辦他的第一家軟體公司並於2005年建立了他的第一批.NET元組件後,他專注於解決Microsoft生態系統中的複雜問題。

他的旗艦IronPDF和Iron Suite .NET程式庫在全球獲得了超過3000萬次NuGet安裝依據,他的基礎程式碼基繼續支援著世界各地開發者使用的工具。擁有25年的商業經驗和41年的程式設計專業知識,他仍專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話