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.