Delphi 2009 之 TStringBuilder 类[6]: Equals

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.