跳過到頁腳內容
.NET幫助

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

當您開始學習 C# 時,字串是您最早學習的概念之一。 如果您曾經編寫過一個 Hello, World! 程式,那麼您已經使用過字串。

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

什麼是多行字串?

多行字串聽起來很像 - 跨多行的字串,有別於一般的單行字串。 C# 中的多行字串是使用字串字面意義建立的,字串字面意義是用雙引號括住的一系列字元。 要形成多行字串,我們需要使用一種特殊類型的字串字面意義,稱為逐字字串字面意義。

逐字逐句字串的魔力

要在 C# 中建立多行字串字面意義,我們使用逐字字串。 Verbatim 字串以 @ 符號為前綴,讓我們可以包含換行符、特殊字符甚至空白,而無需使用轉義序列。

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

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 包含三行,每行之間以換行隔開。 請注意使用 @ 符號來建立逐字字串。

Escaping Characters in Verbatim Strings逐字逐句字串中的字符

在某些情況下,您可能需要在逐字字串中加入雙引號。 為此,您必須使用雙引號。 舉例來說

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 是專為 Web 開發人員設計的輕量級 .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? 您可以從我們的 30天免費試用 IronPDF 開始。 它還可以完全免費用於開發目的,讓您真正能一窺其真面目。 如果您喜歡,IronPDF 的起價低至 $799,即可取得 IronPDF 授權。 若想節省更多,請查看 Iron套件套裝,您可以用兩個工具的價格獲得全部九個 Iron Software 工具。 祝您編碼愉快!

Csharp Multiline String 2 related to 結論

常見問題解答

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

在 C# 中,您可以在字串前加上「@」符號,使用逐字字串字面意義建立多行字串。這可讓您直接在字串中加入換行符及特殊字符。

在 C# 中使用逐字字串字面意義的目的是什麼?

C# 中的逐字字串字面意義用於建立保留換行符及特殊字符的字串,而不需要轉換順序。它們以'@'符號表示,是撰寫多行字串的理想選擇。

如何處理逐字字串中的雙引號等特殊字符?

在逐字字串中,您可以使用雙引號包含雙引號。例如,'@"This is a ""multiline" string."' 允許您在字串中包含雙引號。

什麼是 C# 10 中的原始字串字面意義,以及它們如何運作?

C# 10 中引入的原始字串字面詞允許在不使用 '@' 符號的情況下創建多行字串。這些字串以三引號括起,並保留所有字元(包括換行符)的原樣。

如何在 PDF 生成中使用多行字串?

多行字串可用於建立 HTML 格式的動態內容,然後可使用 IronPDF 等支援 HTML 至 PDF 轉換的函式庫將其轉換為 PDF 文件。

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

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

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

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

開發人員為何要在 .NET 應用程式中使用函式庫來產生 PDF?

IronPDF 是專為在 .NET 中產生 PDF 而設計的函式庫,例如 IronPDF,可簡化 PDF 的讀取、寫入和操作流程。它們支援將各種檔案類型轉換成 PDF,為桌面和網頁應用程式提供了強大的工具集。

Jacob Mellor, Team Iron 首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技術官,作為 C# PDF 技術的先鋒工程師。作為 Iron Software 核心代碼的原作者,他自開始以來塑造了公司產品架構,與 CEO Cameron Rimington 一起將其轉變為一家擁有超過 50 名員工的公司,為 NASA、特斯拉 和 全世界政府機構服務。

Jacob 持有曼徹斯特大學土木工程一級榮譽学士工程學位(BEng) (1998-2001)。他於 1999 年在倫敦開設了他的第一家軟件公司,並於 2005 年製作了他的首個 .NET 組件,專注於解決 Microsoft 生態系統內的複雜問題。

他的旗艦產品 IronPDF & Iron Suite .NET 庫在全球 NuGet 被安裝超過 3000 萬次,其基礎代碼繼續為世界各地的開發工具提供動力。擁有 25 年的商業經驗和 41 年的編碼專業知識,Jacob 仍專注於推動企業級 C#、Java 及 Python PDF 技術的創新,同時指導新一代技術領袖。