【问题标题】:Why is there no implicit conversion from int to string in c#? [closed]为什么 c# 中没有从 int 到 string 的隐式转换? [关闭]
【发布时间】:2012-12-10 15:06:30
【问题描述】:

例如,值为 10 的 int 将始终转换为“10”,不是吗?这样的转换不能自己定义吗?

编辑:我要的是:

int i = 10;
Blah(i);

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

【问题讨论】:

  • 有很多方法可以将 int 表示为字符串。 “10”和“0xA”只是其中的两个……
  • @Fredrik 我的英语老师更喜欢“十”,这个问题没有建设性。只需使用ToString() 或者,那里的一些过载。
  • 我找到的最好的解释:softwareengineering.stackexchange.com/questions/333427/… 一个很好的解释

标签: c# string int implicit-conversion


【解决方案1】:

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

【讨论】:

  • 有些是。任何与字符串连接的内容都会通过ToString() 隐式转换为字符串。
  • @Rotem。你是对的。我会更新
【解决方案2】:
int i = 10;
s = i.ToString();

你到底在问什么?

【讨论】:

    【解决方案3】:

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

    然后您可以使用 Int32.Parse() 将字符串解析回 int

    【讨论】:

      【解决方案4】:

      当必须将int 或任何其他object 隐式转换为字符串时,会在后台调用ToString()

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

      Standard Numeric Format Strings

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-06
          • 2010-12-16
          • 1970-01-01
          • 2016-03-07
          • 2012-02-18
          • 1970-01-01
          相关资源
          最近更新 更多