
C# Multiline String (開発者向けの仕組み)
C#を始めるとき、文字列は最初に学ぶ概念の一つです。 もしHello, World!プログラムを組んだことがあるなら、すでに文字列を扱っています。
C#に慣れてくると、プログラムはより複雑になります。 やがて、複数行にわたる文字列を扱うことになります。 現在その段階にいるのなら幸運です。このガイドでは、複数行文字列とは何か、そしてそれをどのように使用するかを説明します。 では始めましょう。
複数行文字列とは何ですか?
複数行文字列はその名のとおり、通常の単一行の文字列とは対照的に、複数行にまたがる文字列です。 C#での複数行文字列は、ダブルクォートで囲まれた一連の文字、すなわち文字列リテラルを使用して作成されます。 複数行文字列を形成するためには、特殊なタイプの文字列リテラルである逐語的文字列リテラルを使用する必要があります。
逐語的文字列のマジック
C#で複数行文字列リテラルを作成するには、逐語的文字列を使用します。 逐語文字列は@記号で始まり、改行や特殊文字、空白をエスケープシーケンスを使わずに含めることができます。
以下に逐語的文字列を使用した複数行文字列の例があります。
string str = @"This is a
multiline string
in C#.";Dim str As String = "This is a
multiline string
in C#."文字列strには3行が含まれ、それぞれの行は改行で区切られています。 逐語文字列を作成するために@記号が使われているのに注目してください。
逐語的文字列での文字のエスケープ
逐語的文字列内にダブルクォートを含める必要がある場合があります。 これを行うには、二重のダブルクォートを使用する必要があります。 例えば:
string str = @"This is a
""multiline""
string in C#.";Dim str As String = "This is a
""multiline""
string in C#."この例では、文字列strに"マルチライン"という単語がダブルクォートで囲まれて含まれており、これは逐語文字列内でダブルダブルクォートを使用することで達成されています。
複数行文字列の連結
複数行文字列を他の文字列や値と組み合わせる必要があるかもしれません。 マルチライン文字列を他の文字列値と結合するには、+演算子を使用できます。これはシングルライン文字列の場合と同様です。
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!"ここでは、マルチライン文字列をシングルライン文字列nameと結合しました。
複数行文字列の書式設定
複数行文字列を扱う際には、変数や式で書式設定することができます。 マルチライン文字列をフォーマットするには、文字列補間に$記号を使用できます。
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!"文字列補間を使用して、マルチライン文字列内にage変数の値を含めました。
複数行文字列を単一行文字列に変換する
時には、複数行文字列を単一行文字列に変換する必要があるかもしれません。 これを実現するには、Replaceメソッドを使用して改行をスペースまたはその他の希望する文字に置き換えます。
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, " ")複数行文字列の改行をスペースに置き換え、単一行文字列にしました。
長い文字列の処理
時々、非常に長い文字列はコード内で読みづらいことがあります。 コードを読みやすくするために、+演算子を使用して長い文字列を複数行に分割することができます。
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."長いシングルラインの文字列を3つの部分に分割し、+演算子を用いて結合し、コードの可読性を向上させました。
生文字列リテラルを使用した複数行文字列リテラルの作成
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."""生文字列リテラルを使用して複数行文字列を作成しました。 文字列を囲むためのトリプルクォートの使用に注意してください。
生文字列リテラルでの文字のエスケープ
逐語的文字列と同様に、生文字列リテラル内にダブルクォートを含める必要があるかもしれません。 これを行うには、二重のダブルクォートを使用することができます。 例えば:
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."""二重のダブルクォートを使用して、生文字列リテラル内にダブルクォートを含めました。
逐語的文字列と生文字列リテラルの組み合わせ
場合によっては、逐語的文字列と生文字列リテラルの両方の機能を組み合わせたい場合があります。 これは@記号とトリプルクォートを使用して行えます。
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."""この例では、逐語的文字列と生文字列リテラルの両方を使用して複数行文字列を作成しました。 @記号の後にトリプルクォートを用いることに注目してください。
IronPDFで複数行文字列を使用したPDFの生成
IronPDFは、特にウェブ開発者を念頭に置いて設計された軽量 for .NET PDFライブラリです。 これはPDFファイルの読み取り、書き込み、操作を簡単にし、あらゆる種類のファイルタイプをPDFコンテンツに変換できます。デスクトップおよびウェブの両方で.NETプロジェクトで使用できます。 最も良い点は、開発環境で無料で試せることです。
IronPDFでHTML複数行文字列を利用して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")この例では、age変数をマルチライン文字列内に含めるために文字列補間を使用し、PDFの内容を動的かつカスタマイズ可能にしました。 PDFに必要なコンテンツで複数行文字列を作成しました。 次にIronPDFの名前空間からRenderHtmlAsPdfメソッドを使ってマルチライン文字列の内容をPDFドキュメントに変換しました。 最後に、PDFドキュメントを "BioData.pdf" というファイルに保存しました。
結論
そして、複数行文字列の多様な世界の駆け足のツアーが完了します。 今やあなたは複数行文字列を使用するC#のプロであり、IronPDFを用いた上記の例のようにプロジェクトで活用し始められます。
IronPDFを試してみたいですか? IronPDFの30日間無料トライアルで始められます。 開発目的で完全に無料で使用できるので、その真の実力を確かめることができます。 もし内容が気に入ったら、IronPDFライセンスは$999から始まります。 さらに大きな節約のためには、Iron Suiteパッケージを確認してください。これは、9つのIron Softwareツールが2つの価格で手に入るパッケージです。 コーディングを楽しんでください!


Jacob Mellor is Chief Technology Officer at Iron Software and a visionary engineer pioneering C# PDF technology. As the original developer behind Iron Software's core codebase, he has shaped the company's product architecture since its inception, transforming it alongside CEO Cameron Rimington into a 50+ person company serving NASA, Tesla, and global government agencies.
Related Articles


