2010-11-10 44 views

Trả lời

10

Có thể là System.String. Nhưng trong nỗ lực cung cấp thông tin hữu ích hơn:

  • System.String trường hợp không thay đổi. Ghép/chuỗi con/etc thực sự tạo ra các đối tượng chuỗi mới, do đó, sử dụng một cá thể chuỗi làm bộ đệm để xây dựng đầu ra là một ý tưởng thực sự tồi tệ, trong trường hợp bạn định làm điều đó. Hãy nghĩ về số System.String dưới dạng const CString.
  • System.Text.StringBuilder được sử dụng để xây dựng và thao tác nội dung chuỗi. Nó có phương thức .ToString() mà bạn có thể gọi để biến nội dung của nó thành một chuỗi thích hợp.
  • Bạn có thể sử dụng char[] làm giải pháp thay thế chuỗi, nếu bạn biết chính xác chuỗi được tạo ra sẽ kéo dài bao lâu, nhưng thậm chí bạn có thể sử dụng new StringBuilder(length) để chỉ định dung lượng ban đầu mặc định. Sau đó, bạn có thể sử dụng các phương thức chắp thêm có liên quan mà không cần phải giữ một biến chỉ mục. (StringBuilder nào đó cho bạn.)

Như Billy đề cập trong câu trả lời khác cho câu hỏi này, C# có một từ khóa string rằng về bản chất là một phím tắt để loại System.String. Cả hai đều hoàn toàn tương đương, mặc dù hầu hết các lập trình viên sẽ LART bạn nếu bạn sử dụng dạng chữ hoa.

+0

+1 - mặc dù tôi nghĩ rằng bạn có nghĩa là StringBuilder chứ không phải là StringBuffer. –

+0

Có, thực sự đã sửa khi bạn đang gõ. :) – cdhowie

+1

'" hầu hết các lập trình viên sẽ LART bạn nếu bạn sử dụng dạng chữ hoa "" LART btw là gì? – Inverse

2

Bạn có thể thử sử dụng String và xem nó có giúp ích không.

+1

Lưu ý rằng điều này có hỗ trợ bổ sung bằng ngôn ngữ ở dạng (chữ thường) 'chuỗi'. –

2

Bạn biết đấy, CString không chính xác là ví dụ sáng của thiết kế OO được thực hiện đúng. MS tiếp tục bổ sung thêm các chức năng thành viên cho đến khi nó giống như một con dao quân đội Thụy Sĩ ... trong khi vẫn còn thiếu các chức năng bất lực.

Bất cứ điều gì bạn có thể làm với CString đều có thể thực hiện tốt hơn với 'System.String` bất biến và một số lớp hỗ trợ.

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