C#の「@」の使い方を詳しく解説

C#の「@」の使い方を詳しく解説

Verbatim文字列リテラルとは?

C#では、文字列の前に「@」を付けることで、Verbatim(逐語的)文字列リテラルを作成できます。通常の文字列リテラルとは異なり、エスケープシーケンスを使用せずに、そのままの文字を表現できます。

例えば、Windowsのファイルパスを通常の文字列で書くと以下のようになります:

string path = "C:\\Users\\User\\Documents\\file.txt";

しかし、Verbatim文字列を使えば、エスケープせずにそのまま書くことができます:

string path = @"C:\Users\User\Documents\file.txt";

エスケープシーケンスの違い

Verbatim文字列を使うことで、エスケープシーケンスを無視できますが、一部の記号(例えば、二重引用符 “)については特別な扱いが必要です。

通常の文字列リテラルでは:

string text = "これは\"エスケープ\"を含む文字列です。";

Verbatim文字列リテラルでは、二重引用符を二回続けて書くことでエスケープします:

string text = @"これは""エスケープ""を含む文字列です。";

識別子の前に付ける「@」

「@」は、予約語と同じ名前の識別子を作成する際にも使用できます。通常、C#の予約語(例えば、classintnamespace など)は変数名やメソッド名に使えませんが、先頭に「@」を付けることで使用可能になります。

例えば:

int @class = 10;
Console.WriteLine(@class);

これは、変数名として「class」を使用するための手法です。ただし、実際にはこの方法を使うのは避けたほうがよいでしょう。

実践的な使用例

以下に、Verbatim文字列の実践的な使用例を示します。

1. ファイルパスの扱い

string configPath = @"C:\Program Files\MyApp\config.xml";
Console.WriteLine(configPath);

2. SQLクエリの記述

SQLクエリをそのまま記述する際に便利です。

string sql = @"SELECT * FROM Users WHERE Name = 'John Doe'";

3. JSONやXMLの記述

JSONやXMLをコード内に直接書くときにも役立ちます。

string json = @"{
    ""name"": ""John Doe"",
    ""age"": 30
}";

4. 正規表現の扱い

正規表現を使う場合も「@」を付けると可読性が向上します。

string pattern = @"\d{4}-\d{2}-\d{2}"; // YYYY-MM-DD形式

以上のように、「@」はC#において文字列の表記を簡潔にし、特定の識別子を使用可能にする重要な機能です。適切に活用して、可読性の高いコードを書きましょう!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です