Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Hằng số chuỗi (String literals) trong C#

String literal là hằng số chuỗi được viết trực tiếp trong code. C# hỗ trợ hai dạng:

1. Regular string literal (Chuỗi thông thường)

  • Được bao bởi dấu ngoặc kép "...".
  • Hỗ trợ escape sequences (chuỗi thoát): \n (xuống dòng), \t (tab), \\ (backslash), \" (dấu ngoặc kép), \uXXXX (Unicode).

2. Verbatim string literal (Chuỗi nguyên văn - @"

  • Bắt đầu bằng @" và kết thúc bằng ".
  • Không xử lý escape sequences (trừ "" để biểu diễn dấu " bên trong).
  • Có thể viết trên nhiều dòng.
  • Rất hữu ích cho đường dẫn file, regex, JSON, SQL...

Ví dụ

using System;

class Program
{
    static void Main()
    {
        // Regular string với escape sequences
        string str1 = "Hello, World\nNew line\tTab";
        Console.WriteLine("Regular:");
        Console.WriteLine(str1);
        Console.WriteLine();

        // Verbatim string - nhiều dòng, không escape
        string str2 = @"Welcome,
Hope you are doing great!
Path: C:\Users\Admin\Documents";
        Console.WriteLine("Verbatim:");
        Console.WriteLine(str2);
        Console.WriteLine();

        // Raw string literal (C# 11+) - nhiều dòng, không escape, giữ thụt lề
        string str3 = """
            {
                "name": "John",
                "age": 30
            }
            """;
        Console.WriteLine("Raw string (C# 11):");
        Console.WriteLine(str3);
    }
}

Kết quả

Regular:
Hello, World
New line	Tab

Verbatim:
Welcome,
Hope you are doing great!
Path: C:\Users\Admin\Documents

Raw string (C# 11):
{
    "name": "John",
    "age": 30
}

Bảng so sánh

Đặc điểmRegular ("...")Verbatim (@"...")Raw (C# 11 """...""")
Escape sequencesCóKhông (trừ "")Không
Nhiều dòngKhông (cần \n)CóCó
Dấu " bên trong\"""" trực tiếp
Thụt lề codeKhó kiểm soátGiữ nguyênTự động loại bỏ thụt lề chung

Khuyến nghị: Dùng verbatim cho đường dẫn file, regex, SQL; dùng raw string (C# 11+) cho JSON, XML, HTML nhiều dòng.