Tại sao mọi người cứ nhầm chuỗi với chuỗi ký tự? Câu trả lời được chấp nhận là một câu trả lời tuyệt vời cho một câu hỏi khác nhau; không phải cái này
Tôi biết đây là một chủ đề cũ, nhưng tôi đã đến đây với câu hỏi tương tự như OP, và thật bực bội khi thấy mọi người tiếp tục đọc sai nó như thế nào. Hoặc có lẽ tôi đang đọc sai nó, tôi không biết.
Nói một cách đơn giản, một chuỗi là một vùng bộ nhớ máy tính, trong quá trình thực thi chương trình, chứa một chuỗi các byte có thể được ánh xạ tới các ký tự văn bản. Mặt khác, một chuỗi ký tự là một đoạn mã nguồn, chưa được biên dịch, đại diện cho giá trị được sử dụng để khởi tạo một chuỗi sau này, trong quá trình thực hiện chương trình mà nó xuất hiện.
Trong C #, tuyên bố ...
string query = "SELECT foo, bar"
+ " FROM table"
+ " WHERE id = 42";
... không tạo ra một chuỗi ba dòng mà là một lớp lót; nối ba chuỗi (mỗi chuỗi được khởi tạo từ một nghĩa đen khác nhau) không có chuỗi nào chứa bộ sửa đổi dòng mới.
Những gì OP dường như đang hỏi - ít nhất là những gì tôi sẽ hỏi với những từ đó - không phải là cách giới thiệu, trong chuỗi được biên dịch, ngắt dòng bắt chước những gì được tìm thấy trong mã nguồn, mà là cách chia nhỏ cho rõ ràng lâu , một dòng văn bản trong mã nguồn mà không giới thiệu các ngắt trong chuỗi đã biên dịch. Và không yêu cầu thời gian thực hiện kéo dài, đã dành tham gia nhiều chuỗi con đến từ mã nguồn. Giống như dấu gạch chéo ngược trong một chuỗi nhiều chữ trong javascript hoặc C ++.
Đề xuất sử dụng các chuỗi nguyên văn, các hàm không bao giờ StringBuilder
, String.Join
s hoặc thậm chí lồng nhau với đảo ngược chuỗi và điều gì không, khiến tôi nghĩ rằng mọi người không thực sự hiểu câu hỏi. Hoặc có thể tôi không hiểu nó.
Theo như tôi biết, C # không (ít nhất là trong phiên bản màu nhạt mà tôi vẫn đang sử dụng, từ thập kỷ trước) có một tính năng để sản xuất sạch các chuỗi ký tự đa dòng có thể được giải quyết trong quá trình biên dịch thay vì thực thi.
Có thể các phiên bản hiện tại hỗ trợ nó, nhưng tôi nghĩ tôi muốn chia sẻ sự khác biệt mà tôi cảm nhận được giữa các chuỗi và chuỗi ký tự.
CẬP NHẬT:
(Từ bình luận của MeowCat2012) Bạn có thể. Cách tiếp cận "+" của OP là tốt nhất. Theo thông số kỹ thuật, việc tối ưu hóa được đảm bảo: http://stackoverflow.com/a/288802/9399618