跳過到頁腳內容
.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#.";
$vbLabelText   $csharpLabel

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

在逐字字串中轉義字元

某些情況下,您可能需要在逐字字串中包含雙引號。 要做到這一點,您需要使用雙雙引號。 例如:

string str = @"This is a
""multiline""
string in C#.";
string str = @"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!";
$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!";
$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, " ");
$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.";
$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.""";
$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.""";
$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.""";
$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");
$vbLabelText   $csharpLabel

在此示例中,我們使用字串插值將age變數包含在多行字串中,使得PDF內容具有動態和可定制性。 我們創建了一個包含PDF所需內容的多行字串。 然後,我們從IronPDF命名空間中實例化RenderHtmlAsPdf方法將多行字串內容轉換為PDF文件。 最後,我們將PDF文件保存為名為"BioData.pdf"的文件。

結論

這就是多行字串多功能世界的快速導覽。 現在,您已經是C#多行字串專家,您可以開始在您的專案中實施它們,例如上面提到的IronPDF範例。

想要親自使用IronPDF嗎? 您可以從我們的IronPDF的30天免費試用開始。 它在開發用途中也是完全免費的,因此您可以真正了解它的功能。 如果您喜歡所見,IronPDF的起價僅為$799的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核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

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

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me