StringBuilder trong C# cung cấp nhiều constructor để khởi tạo: chuỗi ban đầu, dung lượng, hoặc cả hai. Dưới đây là các ví dụ minh họa.
Ví dụ 1: Tạo từ chuỗi và so sánh tham chiếu
using System;
using System.Text;
public class Demo
{
public static void Main(string[] args)
{
StringBuilder strBuilder1 = new StringBuilder("Tim");
StringBuilder strBuilder2 = new StringBuilder("Tom");
Console.WriteLine("StringBuilder1 có bằng StringBuilder2? = " + strBuilder1.Equals(strBuilder2));
}
}
Kết quả
StringBuilder1 có bằng StringBuilder2? = False
Ví dụ 2: Các constructor khác nhau
using System;
using System.Text;
public class Demo
{
public static void Main(string[] args)
{
StringBuilder strBuilder1 = new StringBuilder("John");
StringBuilder strBuilder2 = new StringBuilder("John");
StringBuilder strBuilder3 = new StringBuilder();
StringBuilder strBuilder4 = new StringBuilder(5);
strBuilder2 = strBuilder3; // Gán tham chiếu
Console.WriteLine("StringBuilder3 có bằng StringBuilder2? = " + strBuilder3.Equals(strBuilder2));
Console.WriteLine("Dung lượng StringBuilder1 = " + strBuilder1.Capacity);
Console.WriteLine("Dung lượng StringBuilder2 = " + strBuilder2.Capacity);
Console.WriteLine("Dung lượng StringBuilder3 = " + strBuilder3.Capacity);
Console.WriteLine("Dung lượng StringBuilder4 = " + strBuilder4.Capacity);
}
}
Kết quả
StringBuilder3 có bằng StringBuilder2? = True Dung lượng StringBuilder1 = 16 Dung lượng StringBuilder2 = 16 Dung lượng StringBuilder3 = 16 Dung lượng StringBuilder4 = 5
Lưu ý: Equals trên StringBuilder so sánh tham chiếu (reference equality), không so sánh nội dung chuỗi. Để so sánh nội dung, hãy dùng strBuilder1.ToString() == strBuilder2.ToString().