跳至页脚内容
.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 的起价低至 $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 生成库可以简化读取、写入和操纵 PDF 的过程。它们支持将各种文件类型转换为 PDF,提供了一个强大的工具集,适用于桌面和 Web 应用程序。

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

Jacob Mellor 是 Iron Software 的首席技术官,是 C# PDF 技术的先锋工程师。作为 Iron Software 核心代码库的原始开发者,自公司成立以来,他就塑造了公司的产品架构,并与首席执行官 Cameron Rimington 一起将其转变成一家公司,拥有50多人,服务于 NASA、特斯拉和全球政府机构。

Jacob 拥有曼彻斯特大学 (1998-2001) 的一级荣誉土木工程学士学位。1999 年在伦敦创办了自己的第一家软件公司,并于 2005 年创建了他的第一个 .NET 组件后,他专注于解决微软生态系统中的复杂问题。

他的旗舰 IronPDF 和 Iron Suite .NET 库在全球已获得超过 3000 万次的 NuGet 安装,其基础代码继续为全球使用的开发者工具提供支持。拥有 25 年商业经验和 41 年编程经验的 Jacob 仍专注于推动企业级 C#、Java 和 Python PDF 技术的创新,同时指导下一代技术领导者。