为什么c#中没有从int到string的隐式转换?

时间:2012-12-10 15:06:30

标签: c# string int implicit-conversion

例如,值为10的int总是会转换为“10”,不是吗?是不是可以自己定义这样的转换?

编辑:我要求的是:

int i = 10;
Blah(i);

public void Blah(string param)
{
...
}

5 个答案:

答案 0 :(得分:4)

C#是一种强类型语言。像你问are not implicit那样的转换。阅读:http://msdn.microsoft.com/en-us/library/ms173104.aspx

答案 1 :(得分:1)

int i = 10;
s = i.ToString();

你到底在问什么?

答案 2 :(得分:1)

您可以使用Int32.ToString()将int转换为字符串(通过显式调用方法或通过与其他字符串连接隐式)。

然后,您可以使用Int32.Parse()

将字符串解析回int

答案 3 :(得分:1)

int或任何其他object必须隐式转换为字符串时,ToString()会被调用。

您可以使用您自己的Culture对象或数字格式字符串显式调用它,从而控制转换。

Standard Numeric Format Strings

答案 4 :(得分:0)

这是因为C#被设计为强类型语言。强类型具有一系列优点,主要与编译器可以捕获许多类型相关的错误相关,这些错误将成为弱类型语言中的运行时错误。您可以在Wikipedia: Strong typing中阅读更多内容。

相关问题