unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} //TStringBuilder.Equals 判断对象是否相同 procedure TForm1.Button1Click(Sender: TObject); var sb1,sb2: TStringBuilder; b: Boolean; begin sb1 := TStringBuilder.Create('abc'); sb2 := TStringBuilder.Create('abc'); b := sb1.Equals(sb2); ShowMessage(BoolToStr(b, True)); {True} sb2.Length := 0; b := sb1.Equals(sb2); ShowMessage(BoolToStr(b, True)); {False} sb1.Free; sb2.Free; end; //此例中的 sb2 都没有产生新的对象, 只是指向了 sb1 procedure TForm1.Button2Click(Sender: TObject); var sb1,sb2: TStringBuilder; begin sb1 := TStringBuilder.Create('abc'); sb2 := sb1; sb1.Append('123'); ShowMessage(sb2.ToString); {abc123} sb2 := sb1.Replace('123', ' 123'); ShowMessage(sb1.ToString); {abc 123} ShowMessage(sb2.ToString); {abc 123} ShowMessage(BoolToStr(sb2.Equals(sb1), True)); {True} sb1.Free; end; end.