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-10-13 22:22  一个人的天空@  阅读(241)  评论(0编辑  收藏  举报