string (C# リファレンス)

更新 : 2007 年 11 月

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

リテラル文字列には、任意の文字リテラルを含めることができます。これにはエスケープ シーケンスが含まれます。

string a = "\\\u0066\n";

この文字列には、円記号 (\)、文字 f、および改行文字が含まれています。

362314fe.alert_note(ja-jp,VS.90).gifメモ :

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

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

@"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# 言語仕様」の次のセクションを参照してください。

  • 2.4.2 識別子

  • 2.4.4.5 リテラル文字列

  • 4.2.3 string 型

  • 7.9.7 文字列等値演算子

参照

概念

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

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

参照

C# のキーワード

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

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

その他の技術情報

C# リファレンス

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