TextBox.Text是字符串属性
但是如果你为它分配一个int,十进制..etc就行了!!
int x = 5;
Textbox1.Text = x; // it works
任何人都知道为什么能告诉我?
答案 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())