注册 登录
编程论坛 C++教室

本人菜鸟,编写程序时,发现了几个问题,求大神一一解释

小强a 发布于 2014-11-01 21:59, 522 次点击
1:C#中 +=和=有什么区别,尤其是他两个接在textBox.text后面时各有什么含义?2:从 (PS:int f3=1)  textBox2.Text += f3 和textBox2.Text = Convert.ToString(f3);这两句话作用相同,都是把f3从textBox2显示,可不可以理解为+=是一种类型转换符?3:textBox.text能直接=什么类型而不用转换?我现在只知道,后面能直接跟是字符型的,而我曾经试了一下,直接跟整型,如,textBox.text=f3;当即报错:无法将类型int
隐式转换为string。而我这样输入时textBox.text= f3 + "";就是正确的,这是为什么呢?,这样的话,这三种形式:1:textBox2.Text = Convert.ToString(f3);2:textBox2.Text += f3;3:textBox.text= f3 + "";的作用都是一样的喽,作用原理都一样?

[ 本帖最后由 小强a 于 2014-11-2 19:18 编辑 ]
4 回复
#2
stop12042014-11-02 07:44
还没接触过C# . 不过表面上看你那是一个文本框吧.
那么就是只是在 textBox2原有的文本上面再加入 f3
C++里面的 +=  就是  a += b  (a = a + b)
不能隐式转换就是需要用到强制转换.
你找一下C#应该有强制转换的函数.
#3
TonyDeng2014-11-02 22:03
C#中+=和=的法则与C/C++是一样的
#4
TonyDeng2014-11-02 22:43
至于后面的问题,那是C#的数据是可以装箱为对象,有对象重载行为,不是什么强制转换。TextBox.Text永远是字符串类型,int不能赋值给string,但int+string的时候,int被装箱为对象,此时编译器编译插入的代码是int变成ToString()后与string相加,那是字符拼接。

textBox2.Text += f3,实际上是textBox2.Text = textBox2.Text + f3,即string+int,处理如上述。
#5
小强a2014-11-03 10:02
多谢大神指教,问题已解决
1