String 能使用 += 运算符吗?

TryToday 2003-01-29 04:37:42
String 似乎不能直接使用 += 运算符:
Edit1->Text += "abc"; 不起作用,
Edit1->Text = Edit1->Text += "abc"; 才行, 但明显是画蛇添足阿!
那位高手知道怎么用 += ?
...全文
675 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
superyys 2003-01-31
  • 打赏
  • 举报
回复
我试过,好像语法没问题,但有些不正常
Thor_Cascades 2003-01-31
  • 打赏
  • 举报
回复
Append an AnsiString.
AnsiString& __fastcall operator +=(const AnsiString& rhs);

The operator += concatenates this AnsiString and rhs, assigning the result to this AnsiString.

The operator +=() is not supported on a property with getter/setter functions.
明确提到不能用于get/set那些“属性”上。
再看看Edit里Text的声明
__property AnsiString Text = {read=GetText, write=SetText};
所以你那里用不了很正常
TR@SOE 2003-01-31
  • 打赏
  • 举报
回复
再次重申,对String/AnsiString,千万不要使用+=操作!
shally5 2003-01-30
  • 打赏
  • 举报
回复
我记得在那个外国的BCB网站看到过,String(是AnsiString类的别名),
AnsiString是利用Pascal长字串数据类型而不象C/C++中一样只是个
字符数组,并且是个类,当然对+=不支持啦!
而你的Edit1->Text = Edit1->Text += "abc";
不就是Edit1->Text = Edit1->Text + "abc"; 吗?
我想画蛇添足的是你啊!?
linx2 2003-01-30
  • 打赏
  • 举报
回复
恩,的确如此~~~
xycleo 2003-01-30
  • 打赏
  • 举报
回复
在java中String 类就可以用+=
lixilin 2003-01-30
  • 打赏
  • 举报
回复
String 类型可以使用s+=操作,没有任何问题,只是在某些MessageBox中,使用+操作符时,会出现一些问题。如果char *和String混合操作时,不能使用+,就要使用AnsiString将Char * 变为String,再+。
oishi 2003-01-30
  • 打赏
  • 举报
回复
不能吧!我一直都是这样用的!
S=S+“DSF”;
ch_builder 2003-01-30
  • 打赏
  • 举报
回复
你不会把String当成char了吧,“加”和“连接”不是一回事;还有呀,在BCB中你那个可是一组件呀,要是你那样用,如果真的能行的话,那程序会是多么大呀:P
TR@SOE 2003-01-30
  • 打赏
  • 举报
回复
BCB早就明确声明过,对String类不要采用符合运算符。
cupidvenus 2003-01-30
  • 打赏
  • 举报
回复
这可能是BCB的BUG
vicly 2003-01-29
  • 打赏
  • 举报
回复
string 类是不能进行连续操作的比如;
string s="a"+"b"+"c"是错误的。
大大怪老张 2003-01-29
  • 打赏
  • 举报
回复
AnsiString与String一样.


temp+=10; //这句能执行?
ffww 2003-01-29
  • 打赏
  • 举报
回复
AnsiString与String一样吗?

String temp="";
temp+=10;
Edit1->Text=temp;

结果是10哦。
cdws222 2003-01-29
  • 打赏
  • 举报
回复
String类能用这个运算符,但在给控件用时有些毛病
dragonhux 2003-01-29
  • 打赏
  • 举报
回复
没错,就是你说的问题,
Edit1->Text += "abc"; 不起作用,
Edit1->Text = Edit1->Text += "abc";
不知道是CB的BUG还是什么问题,
估计和AnsiString使用的临时类有关!

建议、强烈要求你用
Edit1->Text = Edit1->Text + "abc";
所有的+=
xycleo 2003-01-29
  • 打赏
  • 举报
回复
是啊!!为什么一定要写成这样??
whitelion 2003-01-29
  • 打赏
  • 举报
回复
你一定要把程序写成这个样子的吗?

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧