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.

posted on 2008-08-13 14:49  万一  阅读(2600)  评论(0编辑  收藏  举报