Joa*_*nge 9 .net c# compiler-construction string implicit-conversion
我有一些代码:
int value = 5;
MessageBox.Show ( value );
Run Code Online (Sandbox Code Playgroud)
并MessageBox.Show抱怨说:
"无法从'int'转换为'string'"
我似乎记得一些情况,其中值似乎被隐式转换为字符串值,但无法准确地回忆它们.
这个决定背后的原因是什么,任何值都不能隐式转换为字符串值?
Mik*_*ark 18
MessageBox.Show()只接受一个字符串.当你使用类似的东西时Debug.WriteLine,它接受一堆不同的对象类型,包括object,然后调用ToString()该对象.这可能就是你所经历的.
Hen*_*man 12
一个简短的解决方案(无论你需要一个字符串):
MessageBox.Show(""+value);
Run Code Online (Sandbox Code Playgroud)
但在大多数情况下,我更喜欢一个ToString()或多个String.Format().
回答"为什么"部分:因为隐式转换可能很危险并且可能破坏类型安全性.
"1" + 2 = "12" = 12,并不总是你想要或期望的.
| 归档时间: |
|
| 查看次数: |
900 次 |
| 最近记录: |