文字列/文字エスケープ シーケンス \e

手記

この記事は機能仕様です。 仕様は、機能の設計ドキュメントとして機能します。 これには、提案された仕様の変更と、機能の設計と開発時に必要な情報が含まれます。 これらの記事は、提案された仕様の変更が最終決定され、現在の ECMA 仕様に組み込まれるまで公開されます。

機能の仕様と完成した実装の間には、いくつかの違いがある可能性があります。 これらの違いは、関連する 言語設計会議 (LDM) ノートでキャプチャされます。

機能仕様を C# 言語標準に導入するプロセスの詳細については、仕様に関する記事を参照してください。

チャンピオンの課題: https://github.com/dotnet/csharplang/issues/8657

概要

\e (または 0x1b) 文字として知られる文字コード ポイント ESCAPEのショートカット/省略形の置換としての ESC 文字列/文字エスケープ シーケンスを追加。
この文字は現在、次のいずれかのエスケープ シーケンスを使用してアクセスできます。

  • \u001b
  • \U0000001b
  • \x1b (推奨されません。下部に添付されている画像を参照してください)。

この提案の実装では、次のアサーションが真である必要があります。

char escape_char = '\e';

Assert.IsTrue(escape_char == (char)0x1b, "...");
Assert.IsTrue(escape_char == '\u001b', "...");
Assert.IsTrue(escape_char == '\U0000001b', "...");
Assert.IsTrue(escape_char == '\x1b', "...");

詳細な設計

言語構文の仕様は、6.4.5.5 セクションで次のように変更されています。

fragment Simple_Escape_Sequence
-    : '\\\'' | '\\"' | '\\\\' | '\\0' | '\\a' | '\\b' | '\\f' | '\\n' | '\\r' | '\\t' | '\\v'
+    : '\\\'' | '\\"' | '\\\\' | '\\0' | '\\a' | '\\b' | '\\f' | '\\n' | '\\r' | '\\t' | '\\v' | '\\e'
    ;

次の仕様の表に 最後の行 を追加する。

単純なエスケープ シーケンスは、次の表に示すように Unicode 文字を表します。

エスケープシーケンス 文字名 Unicode コードポイント
\' 単一引用符 U+0027
... ... ...
\e エスケープ文字 U+001B

Character_Literal の型は charです。