ทำไมคนถึงสับสนกับสตริงตัวอักษร? คำตอบที่ยอมรับได้เป็นคำตอบที่ดีสำหรับคำถามอื่น ไม่ให้คนนี้
ฉันรู้ว่านี่เป็นหัวข้อเก่า แต่ฉันมาที่นี่พร้อมกับคำถามเดียวกันกับ OP และน่าผิดหวังที่ผู้คนเข้าใจผิด หรือบางทีฉันอ่านผิดฉันไม่รู้
สตริงที่พูดโดยประมาณคือขอบเขตของหน่วยความจำคอมพิวเตอร์ที่ในระหว่างการทำงานของโปรแกรมจะมีลำดับไบต์ที่สามารถแมปกับอักขระข้อความได้ สตริงตัวอักษรในทางกลับกันเป็นชิ้นส่วนของรหัสที่มายังไม่ได้รวบรวมที่แสดงถึงค่าที่ใช้ในการเริ่มต้นสตริงในภายหลังในระหว่างการดำเนินการของโปรแกรมที่ปรากฏ
ใน C # คำสั่ง ...
string query = "SELECT foo, bar"
+ " FROM table"
+ " WHERE id = 42";
... ไม่สร้างสตริงสามบรรทัด แต่เป็นหนึ่งซับ; การต่อกันของสามสาย (แต่ละค่าเริ่มต้นจากตัวอักษรที่แตกต่างกัน) ไม่มีซึ่งประกอบด้วยตัวดัดแปลงบรรทัดใหม่
สิ่งที่ OP ดูเหมือนว่าจะถาม - อย่างน้อยสิ่งที่ฉันจะถามด้วยคำเหล่านั้น - ไม่ใช่วิธีการที่จะแนะนำในการรวบรวมสตริงการแบ่งบรรทัดที่เลียนแบบที่พบในซอร์สโค้ด แต่วิธีการแยกเพื่อความชัดเจนเป็นเวลานาน บรรทัดเดียวของข้อความในซอร์สโค้ดโดยไม่แนะนำตัวแบ่งในสตริงที่คอมไพล์ และโดยไม่ต้องใช้เวลาดำเนินการนาน ๆ การใช้งานร่วมกับสตริงย่อยหลายอันมาจากซอร์สโค้ด เหมือนเครื่องหมายแบ็กสแลชต่อท้ายภายในสตริงหลายบรรทัดใน javascript หรือ C ++
การแนะนำการใช้งานของคำต่อคำสตริง, ไม่เป็นไรStringBuilder
s, String.Join
หรือฟังก์ชั่นที่ซ้อนกันกับการกลับรายการสตริงและสิ่งที่ไม่ทำให้ฉันคิดว่าคนไม่เข้าใจคำถามจริงๆ หรือบางทีฉันไม่เข้าใจ
เท่าที่ฉันรู้ C # ไม่ (อย่างน้อยในรุ่นยุคที่ฉันยังคงใช้จากทศวรรษก่อนหน้า) มีคุณสมบัติในการผลิตตัวอักษรสตริงหลายบรรทัดที่สามารถแก้ไขได้ในระหว่างการรวบรวมมากกว่าการดำเนินการ
อาจเป็นรุ่นปัจจุบันที่สนับสนุน แต่ฉันคิดว่าฉันจะแบ่งปันความแตกต่างที่ฉันรับรู้ระหว่างสตริงและตัวอักษรสตริง
UPDATE:
(จากความคิดเห็นของ MeowCat2012) คุณสามารถ วิธีการ "+" โดย OP เป็นวิธีที่ดีที่สุด ตามข้อกำหนดการรับประกันการเพิ่มประสิทธิภาพ: http://stackoverflow.com/a/288802/9399618