2009-01-21 36 views
9

Có cách nào trong C# sytax để xác định một dòng mới không? (Giống như trong VB _)Làm thế nào để đặt một dòng mới bên trong một chuỗi trong mã nguồn C#?

Ví dụ:

Thay vì:

string myStr = "very long string" + 
"another long string"; 

này:

string myStr = "very long string \something 
another long string" 

Hoặc; trình biên dịch xử lý này và làm một cái gì đó như; "string" + "string" -> "stringstring" trong ví dụ này?

trường hợp khác nhau đều được chào đón như khi những chuỗi là hằng số vv

Trả lời

22

Compiler biến "ABC" + "DEF" vào "ABCDEF" nên không chi phí trong việc sử dụng +

+0

Điều đó có vẻ thú vị, vì vậy khi chúng ta biết tất cả chuỗi không cần sử dụng StringBuilder? như sb.Append ("đường dài"); sb.Append ("đường dài"); Thay vào đó chỉ cần viết "đường dài" + "đường dài" HOẶC @ "đường dài ..." – erdogany

+0

erdogany: chính xác. Ngoài ra, "this" + 1 + "string" được chuyển thành "chuỗi 1 này" tại thời gian biên dịch. –

+0

@DrJokepu: bạn có chắc chắn về điều đó không? – M4N

19

Bạn có thể sử dụng

string myStr = @"very long string 
another long string"; 

@" là sự khởi đầu của một chuỗi chữ và loại chuỗi không dừng lại cho đến khi tiếp theo "ký tự được tìm thấy.

Không có cú pháp chính xác cho C# thực hiện điều tương tự như _ ký tự trong vb. Vì vậy, nếu bạn muốn tránh bao gồm một dòng mới, bạn phải tự kết nối các chuỗi của bạn trên các dòng khác nhau.

+0

Đúng, nhưng bạn phải cẩn thận rằng bạn không thụt lề dòng thứ hai. Nếu không thì khoảng trắng (dấu cách hoặc ký tự tab) sẽ là một phần của chuỗi kết quả. – M4N

+2

Ồ, và ký tự dòng mới cũng sẽ là một phần của chuỗi kết quả. – M4N

+0

"Ồ, và ký tự dòng mới cũng sẽ là một phần của chuỗi kết quả", vâng, điều này không tốt đẹp. Đối với trường hợp của tôi không phải là một vấn đề lớn nó là ok, nhưng do đó, điều này không thể làm điều đó như _ trong VB. – erdogany

-3

Một StringBuilder nên được sử dụng bất cứ nơi nào có thể nối dây khi nó chạy nhanh hơn so với chỉ đơn giản là sử dụng "này" + " cái đó".

+0

Một StringBuilder là overkill cho một số cố định hoặc được biết đến nhỏ của chuỗi nối. –

3

Tôi tin rằng những gì bạn đang tìm kiếm là ký tự tiếp tục dòng C#.

Ngừng tìm kiếm. Chẳng có ai. Trong C# một dòng kết thúc khi dấu chấm phẩy ";" đạt được.

Vì vậy, như những người khác đã đề cập, nếu bạn muốn chia nhỏ chuỗi chỉ định, chỉ cần sử dụng ký tự '+'.


namespace Jaberwocky 
{ 
    class Program 
    { 
     public static void Main(string[] args) 
     { 
      string s = "Hello World! " + 
       "This is a long string " + 
       "That continues on and " + 
       "on and on and on."; 
      Console.WriteLine(s); 
      Console.ReadKey(true); 
     } 
    } 
} 
Các vấn đề liên quan