String Literal หลายบรรทัดใน C#
ใน C# สามารถสร้างสตริงที่มีหลายบรรทัดได้โดยใช้สัญลักษณ์ @ นำหน้าสตริง (Verbatim String Literal) ทำให้สามารถเขียนสตริงหลายบรรทัดได้โดยตรง ไม่ต้องใช้ escape sequence เช่น \n หรือ \r\n
ไวยากรณ์
string str = @"บรรทัดแรก
บรรทัดที่สอง
บรรทัดที่สาม";
ตัวอย่างโค้ดสมบูรณ์
using System;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
string str = @"Welcome User,
Kindly wait for the image to
load";
Console.WriteLine(str);
}
}
}
ผลลัพธ์
Welcome User,
Kindly wait for the image to
load
คุณสมบัติของ Verbatim String (@)
- รองรับหลายบรรทัดโดยตรง
- ไม่ต้อง escape backslash:
@"C:\Users\Name"แทน"C:\\Users\\Name" - Double quote ภายในเขียนเป็น
""(สองคำพูด):@"""Hello"""→"Hello" - รักษารูปแบบ whitespace ทุกอย่างรวมถึง indentation
Raw String Literals (C# 11+)
C# 11 เพิ่ม Raw String Literals ใช้ """ (สามเครื่องหมายคำพูด) ซึ่งยืดหยุ่นกว่า:
// หลายบรรทัด จัดการ indentation อัตโนมัติ
string json = """
{
"name": "John",
"age": 30
}
""";
// สตริงเดียว (single-line)
string path = """C:\Users\Name\Documents""";
// มี double quote ภายในได้โดยตรง
string quote = """He said "Hello".""";
การเปรียบเทียบ
| คุณสมบัติ | @ Verbatim | """ Raw String (C# 11) |
|---|---|---|
| หลายบรรทัด | ✅ | ✅ |
| Backslash ตรงตัว | ✅ | ✅ |
| Double quote ภายใน | "" |
ตรงตัว " |
| จัดการ Indentation | ❌ | ✅ (อัตโนมัติ) |
| Interpolation | $@"" |
$""" |
String Interpolation กับหลายบรรทัด
var name = "User";
var message = $@"Welcome {name},
Please wait...";
// หรือ C# 11
var message11 = $"""
Welcome {name},
Please wait...
""";