C# の文字列型 (string)

C# の string は String オブジェクト

C# の string 型は String クラスのオブジェクトとして作成されます。

Unicode (UTF-16) で文字を表す Char 型の値のシーケンスを表しています。

string 型の変数はプリミティブではなく、String オブジェクトの参照です。 String オブジェクトがセットされていなければ null になります。

C# の文字列は二重引用符で囲む

C# の文字列リテラルは二重引用符 " で囲みます。

string s = "Hello! world!";
Console.WriteLine(s);

文字列の中に改行文字などの特殊文字が含まれる場合は、エスケープします。これは char 型の場合と同様です。

エスケープシーケンスの一覧については「C# 文字のエスケープシーケンス」を参照してください。

C# の逐語的文字列リテラルではエスケープが不要

標準的な文字列では、バックスラッシュ \ 等がエスケープが必要な文字です。

このため、文字列でファイルのパスを記述しようとすると、次のようにエスケープのためのバックスラッシュが必要となり煩雑になります。

string fname = "C:\\path\\to\\file.txt";
Console.WriteLine(fname);
// C:\path\to\file.txt

C# では標準的な文字列の他に逐語的文字列 (verbatim string) がサポートされています。 逐語的文字列とするには、文字列を表す二重引用符の前に @ を付けます。

逐語的文字列を使うと、上と同じ意味のコードは次のようになります。

string fname = @"C:\path\to\file.txt";
Console.WriteLine(fname);
// C:\path\to\file.txt

ただし、二重引用符をデータとして使う場合には、文字列の終端と区別するために "" のように、重ねて書くことで一つの二重引用符と認識されます。

string fname = @"A""B";
Console.WriteLine(fname); // A"B

C# の文字列補間

フォーマット文字列に直接、変数値を埋め込むことで一つの文字列を作ることができます。

これは文字列補間と呼ばれます。文字列補間は文字列の先頭に $ を付け、 変数値を {} で囲むことで記述します。

文字列補間について詳しくは「C# の文字列補間」をご覧ください。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 C# 入門