C# 文本框中的奇怪行为
文本框。文本是字符串属性 但是如果你给它赋值一个int,decimal…等等,它就会工作C# 文本框中的奇怪行为,c#,asp.net,C#,Asp.net,文本框。文本是字符串属性 但是如果你给它赋值一个int,decimal…等等,它就会工作 int x = 5; Textbox1.Text = x; // it works 有谁知道为什么可以告诉我 这是因为转换 是隐式数字转换的完整列表 正如桑尼所指出的,以下是事实 如果选项Strict处于启用状态,则上述 示例引发了一个编译器错误。如果 选项Strict已禁用,但是 转换是隐式执行的, 即使这种隐式转换 可能会在运行时导致错误。对于 因此,您应该始终使用 选择严格 C#将允许从数字类型隐
int x = 5;
Textbox1.Text = x; // it works
有谁知道为什么可以告诉我 这是因为转换
是隐式数字转换的完整列表
正如桑尼所指出的,以下是事实
如果选项Strict处于启用状态,则上述
示例引发了一个编译器错误。如果
选项Strict已禁用,但是
转换是隐式执行的,
即使这种隐式转换
可能会在运行时导致错误。对于
因此,您应该始终使用
选择严格
C#将允许从数字类型隐式转换为字符串。这是因为它相当于:
TextBox1.Text=x.ToString()代码>值类型(如int、double等)具有自动为您调用的ToString()方法。您可以通过键入x.ToString()看到这一点;
实际发生的情况是,值类型被“装箱”到相应的引用类型(类)中,并且该类具有ToString方法。如前所述,这是因为隐式转换
另一个例子:
?Console.WriteLine(1)
1
?Console.WriteLine("1")
1
因为
Console.WriteLine(1) == Console.WriteLine(1.ToString())
Werly字符串x=3将引发错误。请注意:最好不要在Option Explicit或Option Strict关闭的情况下运行。(这些是VB设置,我假设C#是相同的)。