.NET 帮助

C# 多行字符串(对开发者的作用)

发布 2024年八月15日
分享:

入门C#语言时,字符串是你学习的最早概念之一。如果你曾经写过“Hello, World!程序,然后您已经处理过字符串。

随着您对C#的熟悉程度提高,您的程序将变得更复杂。用不了多久,您就会开始处理跨越多行的字符串。如果您现在正处于这个阶段,那么您很幸运,因为在本指南中,我们将解释什么是多行字符串以及如何使用它们。让我们开始吧。

什么是多行字符串?

多行字符串正如其名字所暗示的那样——是一种跨多行的字符串,与通常的单行字符串形成对比。在 C# 中,多行字符串是使用字符串字面量创建的,即用双引号括起来的一系列字符。为了形成多行字符串,我们需要使用一种特殊的字符串字面量,称为逐字字符串字面量。

Verbatim字符串的魔力

要在C#中创建多行字符串文本,我们使用Verbatim字符串。Verbatim字符串以@符号作为前缀,允许我们包括换行、特殊字符,甚至空白字符,而无需使用转义序列。

下面是一个使用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#."
VB   C#

字符串 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#."
VB   C#

在这个例子中,字符串 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!"
VB   C#

在这里,我们将多行字符串与单行字符串名称连接在一起。

格式化多行字符串

在处理多行字符串时,您可以使用变量或表达式对其进行格式化。要格式化多行字符串,您可以使用 '$' 符号进行字符串插值。

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!"
VB   C#

我们使用字符串插值将 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, " ")
VB   C#

我们用空格替换了多行字符串中的换行符,从而得到一个单行字符串。

处理长字符串

有时候,很长的字符串在代码中很难阅读。为了使代码更具可读性,您可以使用'+'操作符将长字符串分成多行。

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.";
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

我们将长长的单行字符串拆分成三个部分,然后使用 "+"运算符将它们连接起来,使代码更加易读。

使用原始字符串字面量创建多行字符串字面量

在 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."""
VB   C#

我们使用原始字符串字面量创建了一个多行字符串。请注意,我们使用了三层引号来括弧字符串。

在原始字符串字面中使用转义字符

与逐字字符串类似,我们可能需要在原始字符串字面中包含双引号。为此,我们可以使用双引号。例如

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."""
VB   C#

我们使用双引号将双引号包含在原始字符串字面中。

结合逐字和原始字符串字面意义

在某些情况下,我们可能希望结合逐字字符串和原始字符串的特点。这可以通过使用"@"符号和三层引号来实现。

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."""
VB   C#

在本例中,我们使用逐字字符串和原始字符串字面量创建了一个多行字符串。请注意"@"符号和三层引号的使用。

使用多行字符串在 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>";
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>";
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

// 创建一个新的PDF文档

var pdfDocument = new IronPdf.ChromePdfRenderer
```();

pdfDocument.RenderHtmlAsPdf(内容).SaveAs("c://BioData.pdf");

这是代码实际运行的样子:

![](/static-assets/pdf/blog/csharp-multiline-string/csharp-multiline-string-1.webp)

在这个例子中,我们使用字符串插值将姓名和年龄变量包含在多行字符串中,使我们的PDF内容具有动态性和可定制性。我们创建了一个包含我们想要放入PDF中的内容的多行字符串。然后,我们从IronPDF命名空间实例化ChromePdfRenderer类,并使用RenderHtmlAsPdf方法将多行字符串内容转换为PDF文档。最后,我们将PDF文档保存为一个名为"BioData.pdf"的文件。

## 结论

这就是多行字符串的多样化世界的快速导览。现在你已经是多行字符串的C#专家,你可以开始在你的项目中实现它们了——比如上面使用IronPDF的例子。

想要使用IronPDF吗?你可以从我们的... [30 天免费试用](https://ironsoftware.com/suite/#trial-license)开发端也是完全免费的,所以您可以真正了解它的性能。而且,如果您喜欢它,IronPDF 的起价仅为 [$749](/licensing/)欲获得更大折扣,请查看 [Iron Suite](/licensing/) 在这里,您可以以两款工具的价格获得Iron Software的全部九款工具。祝编程愉快。!

![](/static-assets/pdf/blog/csharp-multiline-string/csharp-multiline-string-2.webp)
< 前一页
什么是 Visual C++ 可再发行组件
下一步 >
C# If(它如何为开发人员工作)

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 10,731,156 查看许可证 >