C# Language
文字列エスケープシーケンス
サーチ…
構文
- \ ' - 一重引用符(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文字(サロゲートを生成するため)
備考
文字列エスケープシーケンスは、 コンパイル時に対応する文字に変換されます 。逆スラッシュを含む通常の文字列は変換されません 。
例えば、以下のnotEscaped
とnotEscaped2
の文字列は改行文字に変換されませんが、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
というエラーが生成されます。
識別子にエスケープシーケンスを使用する
エスケープシーケンスは、 string
とchar
リテラルに限定されません。
サードパーティメソッドをオーバーライドする必要があるとします。
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