.NET パスの余分なバックスラッシュについて
C# アプリケーションでは、一見余分なバックスラッシュを含むパスが表示されることがよくあります。 たとえば、「C:Test」はテキスト ビューアでは「C:\Test」として表示されます。これは、特に string.Split()
を使用する場合に混乱を招く可能性があり、どの文字列表現を使用するかが不明確になります。
この動作は、エスケープ文字として機能するバックスラッシュ () に起因します。文字列内のリテラルのバックスラッシュを表すには、エスケープ シーケンス
\
を使用する必要があります。 したがって、「C:Test」は次のように解釈されます:
はエスケープ文字です。
は実際のバックスラッシュ文字です。これにより、最初のバックスラッシュに続く文字がエスケープ文字として誤って解釈されるのを防ぎます。
.NET のエスケープ文字: 概要
エスケープ文字としてのバックスラッシュの役割はパスを超えて拡張され、文字および文字列リテラルに影響を与えます。 .NET エスケープ文字のリストは次のとおりです:
\'
: 一重引用符 (文字リテラル)\"
: 二重引用符 (文字列リテラル)\
: バックスラッシュ
\a
\b
\f
\n
\r
\t
\v
\u
\U
\x
文字列分割の影響
string.Split()
パスで \
を使用する場合は、二重バックスラッシュ (string.Split()
) が 1 つの文字として扱われることに注意してください。 したがって、
[C:, Test]
string.Split()
つまり、.NET パス内の二重バックスラッシュは、バックスラッシュ文字をエスケープした結果です。 これは他のエスケープ シーケンスにも当てはまります。 パス文字列と
以上が.NET がパスに余分なバックスラッシュを追加するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。