跳過到頁腳內容
.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 庫,專為 web 開發者設計。 它使讀取、寫入和操作 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 的許可證起價低至 $799。 想要節省更多,請查看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 應用程序提供了強大的工具集。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。