Trong C# có thể nối chuỗi trong cách khác nhau:Khi nào tôi nên sử dụng String.Format hoặc String.Concat thay vì toán tử ghép nối?
Sử dụng toán tử nối:
var newString = "The answer is '" + value + "'.";
Sử dụng String.Format
:
var newString = String.Format("The answer is '{0}'.", value);
Sử dụng String.Concat
:
var newString = String.Concat("The answer is '", value, "'.");
Ưu điểm/nhược điểm của từng phương pháp này là gì? Khi nào tôi nên thích một người hơn những người khác?
Câu hỏi đặt ra là do cuộc tranh luận giữa các nhà phát triển. Một không bao giờ sử dụng String.Format
cho nối - ông cho rằng điều này là để định dạng chuỗi, không cho nối, và đó là luôn luôn không thể đọc được vì các mục trong chuỗi được thể hiện theo thứ tự sai. Các khác thường xuyên sử dụng String.Format
cho nối, bởi vì ông nghĩ rằng nó làm cho mã dễ đọc hơn, đặc biệt là nơi có một số bộ báo giá liên quan. Cả hai nhà phát triển này cũng sử dụng toán tử ghép nối và String.Builder.
+1 để chống lại việc giảm giá không được bảo tồn. – LukeH
Có, liên kết tốt +1. – StuartLC
Sử dụng nối chuỗi thường sẽ tạo ra nhiều đối tượng nhỏ trong bộ nhớ, điều này có thể ảnh hưởng tiêu cực đến hiệu suất thu gom rác. Rất khó để đo lường hiệu ứng như vậy bằng cách kiểm tra từ liên kết của bạn, nhưng nó có thể là vấn đề hiệu suất rất lớn cho các hệ thống lớn với các yêu cầu hiệu suất cứng. –