2008-09-22 32 views
17

Trong C# có String đối tượng và string đối tượng.Chuỗi so với chuỗi

Sự khác nhau giữa hai loại là gì? Các phương pháp hay nhất liên quan đến việc sử dụng là gì?

+0

Bạn cũng có thể thấy câu hỏi và câu trả lời này (http://stackoverflow.com/questions/7074/in-c-what-is-the-difference-between-string-and-string) hữu ích. –

Trả lời

28

Không có sự khác biệt. chuỗi (chữ thường) chỉ là một bí danh cho System.String.

3

Không có sự khác biệt. string là một bí danh mà trình biên dịch chuyển đổi thành System.String.

Trong thực tế, nó thậm chí còn bí danh trong MSIL:

.method private hidebysig static void Main(string[] args) cil managed 
2

Không có sự khác biệt giữa chúng. chuỗi chỉ là một bí danh cho System.String. Khi biên dịch, cả hai đều được biên dịch thành đối tượng System.String.

2

Phiên bản chữ thường chỉ là bí danh cho chuỗi lớp thực tế. Không có sự khác biệt thực sự xa như IL tạo ra.

10

Chúng là bí danh và có thể hoán đổi cho nhau. Tuy nhiên, về mặt phong cách, đối với các khai báo, tôi sử dụng chuỗi được hạ thấp và cho các phương thức tĩnh, tôi sử dụng String.

string foo = "bar"; 

if(foo != String.Empty) 
{ 
    Console.WriteLine(String.Format("foo.Length = {0}", foo.Length)); 
} 
1

Không có sự khác biệt vì chuỗi được chuyển thành System.String bởi trình biên dịch. Cùng với tất cả các loại phổ biến (int đi đến System.Int32, vv). Chúng tôi sử dụng tên đơn giản để chúng nổi bật.

14

Không có sự khác biệt. System.String hoàn toàn giống với string. Nguyên tắc mã hóa C# chung cho biết bạn nên sử dụng từ khóa string.

1

Không có sự khác biệt. string là một từ khóa ngôn ngữ C# dùng để chỉ lớp System.String, giống như int là một từ khóa dùng để chỉ System.Int32.

2

Trong tương lai, hãy thử biên dịch một ứng dụng sử dụng cả hai và sau đó sử dụng Reflector (thay đổi ngôn ngữ thành IL) để xem đầu ra đã biên dịch. Bạn sẽ thấy không có sự khác biệt.

1

Xem xét rằng “int” là khác nhau ở một số ngôn ngữ tùy thuộc vào hệ thống 16bit/32bit, một "chuỗi" có thể trong tương lai phát triển không giống như System.String.

Nhưng hiện tại là.

0

chỉ cần lưu ý một chút: chuỗi/Chuỗi không phải là cặp vợ chồng duy nhất của bí danh: ví dụ: Integer, Int32, int là tất cả các bí danh.

@mliesen: nó không vui vẻ trong C#, nó không giống như C. điều này bởi vì từ C# bạn không tạo tệp thực thi mà là mã được biên dịch, như java.

Các vấn đề liên quan