string (C# リファレンス)

string 型は、Unicode 文字のシーケンスを表します。文字数がゼロの場合もあります。 string は、.NET Framework の String のエイリアスです。

string は参照型ですが、等値演算子 (== および !=) は、string オブジェクトの参照ではなく、値を比較するように定義されます。 値を比較することで、文字列が等しいかを直感的にテストできます。 次に例を示します。

string a = "hello";
string b = "h";
// Append to contents of 'b'
b += "ello";
Console.WriteLine(a == b);
Console.WriteLine((object)a == (object)b);

文字列の内容が等しいので、"True"、"False" の順に表示されますが、a および b は同じ文字列インスタンスを参照しません。

+ 演算子は、文字列を連結します。

string a = "good " + "morning";

これは、"good morning" を含む文字列オブジェクトを作成します。

文字列は変更不可です。文字列オブジェクトの作成後、そのコンテンツを変更することはできません。構文では変更可能に見えても、変更不可です。 たとえば、このコードを作成すると、コンパイラは新しい文字列オブジェクトを格納する新しいシーケンス オブジェクトを生成し、その新しいオブジェクトが b に代入されます。 文字列 "h" がガベージ コレクションの対象になります。

string b = "h";
b += "ello";

[] 演算子は、string の各文字への読み取り専用アクセスに使用できます。

string str = "test";
char x = str[2];  // x = 's';

リテラル文字列は string 型であり、二重引用符で囲む形式と、@ と二重引用符で囲む形式の 2 とおりがあります。 二重引用符で囲む場合は、リテラル文字列の前後に二重引用符 (") を付けます。

"good morning"  // a string literal

リテラル文字列には、任意の文字リテラルを含めることができます。 これにはエスケープ シーケンスが含まれます。 次の例では、円記号にエスケープ シーケンス \\、文字 f に\u0066、改行に \n を使用しています。

string a = "\\\u0066\n";
Console.WriteLine(a);

注意

エスケープ コード \udddd (dddd は 4 桁の数字) は、Unicode 文字 U + dddd を表します。 8 桁の Unicode エスケープ コード \Udddddddd も認識できます。

逐語的リテラル文字列の場合は、先頭に @ を付け、さらに前後に二重引用符を付けます。 次に例を示します。

@"good morning"  // a string literal

逐語的文字列の場合の利点は、エスケープ シーケンスが処理されないため、たとえば、完全修飾ファイル名が書きやすくなることです。

@"c:\Docs\Source\a.txt"  // rather than "c:\\Docs\\Source\\a.txt"

@ と二重引用符で囲まれた文字列中に二重引用符を含めるには、二重引用符を二重にします。

@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain.

また、C# キーワードである参照 (/reference (メタデータのインポート)) 識別子を使用する場合も、@ 記号を使用します。

C# での文字列の詳細については、「文字列 (C# プログラミング ガイド)」を参照してください。

使用例

class SimpleStringTest 
{
   static void Main()
   {
      string a = "\u0068ello ";
      string b = "world";
      Console.WriteLine( a + b );
      Console.WriteLine( a + b == "Hello World" ); // == performs a case-sensitive comparison
   }
}
/* Output:
    hello world
    False
 */

C# 言語仕様

詳細については、「C# 言語仕様」を参照してください。 言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。

参照

参照

C# のキーワード

参照型 (C# リファレンス)

値型 (C# リファレンス)

概念

C# プログラミング ガイド

.NET Framework で文字列を使用するためのベスト プラクティス

C# プログラミング ガイド

新しい文字列の作成

その他の技術情報

C# リファレンス

基本的な文字列操作

数値結果テーブルの書式設定 (C# リファレンス)