TextBox.Text中的奇怪行为

时间:2010-01-19 15:31:01

标签: c# asp.net

TextBox.Text是字符串属性

但是如果你为它分配一个int,十进制..etc就行了!!

int x = 5;

Textbox1.Text = x; // it works

任何人都知道为什么能告诉我?

4 个答案:

答案 0 :(得分:8)

由于Implicit转化而导致。

Here是隐式数字转换的完整列表

正如桑尼指出的那样,here

的情况如下
  

如果Option Strict为On,则为上述   示例引发编译器错误。如果   Option Strict是Off,但是,   转换是隐式执行的,   即使这种隐式转换   可能会在运行时导致错误。对于   这个原因,你应该经常使用   Option Strict On。

答案 1 :(得分:2)

C#将允许从数字类型隐式转换为String。所以这是有效的,因为它相当于:

TextBox1.Text = x.ToString();

答案 2 :(得分:2)

诸如int,double等值类型具有自动为您调用的ToString()方法。你可以通过输入x.ToString(); 真正发生的事情是,值类型被“装箱”到相应的引用类型(类)中,并且该类具有ToString方法。

答案 3 :(得分:1)

已经指出这是因为隐式转换。

另一个例子:

?Console.WriteLine(1)
1
?Console.WriteLine("1")
1

因为

Console.WriteLine(1) == Console.WriteLine(1.ToString())