サーチ…


構文

  • \ ' - 一重引用符(0x0027)
  • \ " - 二重引用符(0x0022)
  • \\ - バックスラッシュ(0x005C)
  • \ 0 - ヌル(0x0000)
  • \ a - アラート(0x0007)
  • \ b - バックスペース(0x0008)
  • \ f - フォームフィード(0x000C)
  • \ n - 改行(0x000A)
  • \ r - キャリッジリターン(0x000D)
  • \ t - 水平タブ(0x0009)
  • \ v - 垂直タブ(0x000B)
  • \ u0000 - \ uFFFF - Unicode文字
  • \ x0 - \ xFFFF - Unicode文字(可変長のコード)
  • \ U00000000 - \ U0010FFFF - Unicode文字(サロゲートを生成するため)

備考

文字列エスケープシーケンスは、 コンパイル時に対応する文字に変換されます 。逆スラッシュを含む通常の文字列変換されません

例えば、以下のnotEscapednotEscaped2の文字列は改行文字に変換されませんが、2つの異なる文字( '\''n' )として残ります。

string escaped = "\n";
string notEscaped = "\\" + "n";
string notEscaped2 = "\\n";

Console.WriteLine(escaped.Length); // 1
Console.WriteLine(notEscaped.Length); // 2            
Console.WriteLine(notEscaped2.Length); // 2

Unicode文字エスケープシーケンス

string sqrt = "\u221A";      // √
string emoji = "\U0001F601"; // 😁
string text = "\u0022Hello World\u0022"; // "Hello World"
string variableWidth = "\x22Hello World\x22"; // "Hello World"

文字リテラル内の特殊記号をエスケープする

アポストロフィ

char apostrophe = '\'';

バックスラッシュ

char oneBackslash = '\\';

文字列リテラルの特殊記号をエスケープする

バックスラッシュ

// The filename will be c:\myfile.txt in both cases
string filename = "c:\\myfile.txt";
string filename = @"c:\myfile.txt";

2番目の例では、バックスラッシュをエスケープ文字として扱わない逐語文字リテラルを使用しています。

引用

string text = "\"Hello World!\", said the quick brown fox.";
string verbatimText = @"""Hello World!"", said the quick brown fox.";

両方の変数に同じテキストが含まれます。

"ハローワールド!"、クイックブラウンキツネは言った。

ニューラインズ

逐語的な文字列リテラルは、改行を含むことができます:

string text = "Hello\r\nWorld!";
string verbatimText = @"Hello
World!";

両方の変数に同じテキストが含まれます。

認識できないエスケープシーケンスがコンパイル時エラーを生成する

次の例はコンパイルされません。

string s = "\c";
char c = '\c';

代わりに、コンパイル時に「 Unrecognized escape sequenceというエラーが生成されます。

識別子にエスケープシーケンスを使用する

エスケープシーケンスは、 stringcharリテラルに限定されません。

サードパーティメソッドをオーバーライドする必要があるとします。

protected abstract IEnumerable<Texte> ObtenirŒuvres();

あなたのC#ソースファイルに使用する文字エンコーディングで文字Œが利用できないとします。あなたは幸いですが、コード内の識別子\u####または\U########エスケープを使用することは許されています。それで、書くのは合法です:

protected override IEnumerable<Texte> Obtenir\u0152uvres()
{
    // ...
}

C#コンパイラは、 Œ\u0152が同じ文字であることを\u0152ます。

(ただし、すべての文字を処理できるUTF-8または同様のエンコーディングに切り替えることをお勧めします)。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow