2010-03-02 37 views

Trả lời

26

Điều này có nghĩa là diễn giải chuỗi sau dưới dạng chữ. Có nghĩa là, \ trong chuỗi sẽ thực sự là một "\" ở đầu ra, thay vì phải đặt "\\" để có nghĩa là ký tự chữ số

+2

Có dấu gạch chéo của bạn trộn lẫn lên. Nếu không, tôi thích câu trả lời của bạn tốt nhất. –

+0

@ Spencer Ruport: không thể có được điều đó, làm thế nào hỗn hợp? – Sarfraz

+0

hoàn toàn. Nên được dấu gạch chéo ngược, không phải là một dấu gạch chéo đơn giản –

0

Nó cho phép bạn có một chuỗi có dấu \ delimiter trong đó.

@ "C: \ A \ b \ c \ d \ e \ f" là hợp pháp.

4

Điều đó có nghĩa là không cần phải thoát khỏi các ký tự trong chuỗi như vậy.

Vì vậy, nếu bạn muốn viết một con đường cho c: \ Windows, bạn có thể viết nó như

string path="c:\\Windows"; // Note thoát '\'

HOẶC

string [email protected]"c:\Windows"; // '\' không cần phải thoát ra

+0

Tôi đang tìm kiếm thực sự khó khăn nhưng tôi không thể nhìn thấy đôi \ trong ví dụ đầu tiên của bạn ... – Rory

+0

Đã sửa lỗi. Dường như một số vấn đề định dạng. – logicnp

0

Được sử dụng cho chuỗi chữ. Nó đánh dấu chuỗi trong quote (") dấu ngoặc là giá trị mà không áp dụng bất kỳ giải thích cho biểu tượng trong chuỗi

2

xâu Verbatim bắt đầu với @ và cũng được kèm theo trong đôi dấu ngoặc kép Ví dụ..:

@"good morning" // a string literal 

nicked từ, có một cái nhìn tại một vài dòng cuối cùng trên ví dụ để biết thêm thông tin. http://msdn.microsoft.com/en-us/library/362314fe.aspx

+0

cũng https://msdn.microsoft.com/en-us/library/ms228362.aspx#Anchor_3 – Lu55

4

Có hai loại chuỗi ký tự, thường xuyên và nguyên văn. Biểu tượng @ làm cho nó trở thành một chuỗi chữ đúng nguyên văn.

MSDN: String literals (C#)

18

Trước chuỗi nó cho phép các quy tắc tạo chuỗi khác nhau. Bạn không thể sử dụng dấu gạch chéo ngược để chỉ định ký hiệu đặc biệt và "" (dấu ngoặc kép trở thành dấu ngoặc kép). Tôi tìm thấy định dạng này rất hữu ích cho biểu thức thông thường

Ví dụ

Console.WriteLine(@"\n""\/a"); // outputs \n"\/a 
Console.WriteLine("\\n\"\"\\/a"); // outputs \n"\/a 

Bạn cũng có thể nhìn thấy biểu tượng @ trước khi biến. Trong trường hợp này, nó cho phép sử dụng các từ khóa C# đặc biệt làm biến.

Ví dụ:

var @switch = 1; 
var @if = "test"; 
1

Trong C và C++, chuỗi có một số ký tự đặc biệt được gọi là "thoát khỏi nhân vật". ví dụ: "\", "&" và " nó là một nhân vật thoát!

Trong cách rất bình thường bạn in một tuyên bố như

Nancy Said Hello World! & mỉm cười

bạn phải thiết lập chuỗi của bạn như sau

string str = "Nancy said Hello World! \& smiled."; 

Nhưng mọi người trong Microsoft đã thực hiện một tính năng mới tuyệt vời trong biên dịch C#, do đó bạn có thể thoát khỏi đau đầu xử lý các ký tự thoát bằng cách thêm @ trước khi bất kỳ chuỗi, và trình biên dịch sẽ xử lý tất cả các ký tự thoát cho bạn một mình. Đối với ví dụ cuối cùng bạn có thể có điều này trong C# như sau:

string str = @"Nancy said Hello World! & smiled."; 
+1

Đồng ý với phân định, nhưng tôi không tin & là một ký tự yêu cầu phân định trong C# – MPritchard