跳至页脚内容
.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套件套餐,您可以用两个工具的价格获得全部九个 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 拥有曼彻斯特大学土木工程一级荣誉工程学士学位(BEng)(1998-2001 年)。他的旗舰产品 IronPDF 和 Iron Suite for .NET 库在全球的 NuGet 安装量已超过 3000 万次,其基础代码继续为全球使用的开发人员工具提供动力。Jacob 拥有 25 年的商业经验和 41 年的编码专业知识,他一直专注于推动企业级 C#、Java 和 Python PDF 技术的创新,同时指导下一代技术领导者。

Iron Support Team

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