【问题标题】:c# convert string to int [closed]c# 将字符串转换为 int [关闭]
【发布时间】:2013-01-23 22:58:10
【问题描述】:
converted.Year = textBox2.Text;
textBox17.Text = converted.Year;

int year2 = int.Parse(converted.Year);
converted.Year = year2.ToString();

嗨!我希望 textBox17 的最终分配值为 int 类型。

最初,我尝试过:textBox17.Text = int.Parse(converted.Year);

但它只返回一个无法进行转换的错误消息。

所以我想出了最后两行,但我不确定它是否真的输出int? 我想我可能已经绕着这个问题兜圈子了?嗯……

【问题讨论】:

  • Int.Parse 将采用已经具有 int 兼容值的字符串(例如“32”)并将其转换为 Int 对象 (32)。这似乎不是你想要做的。你能提供更多细节吗?
  • textBox17.Text 的类型不是int。它是string,这就是为什么你不能给它分配int
  • 您至少可以尝试使用比convertedtextbox17 更有意义的变量。
  • 如果您只是想验证 convert.Year 可以解析为整数,请查看 int.TryParse(converted.Year)。

标签: c# string parsing int


【解决方案1】:

textbox17.Text 的类型是 string,并且永远是 string。您当然可以使用它来显示整数。

有一个NumericUpDown control 可以用来显示只接受数字的数字。要强制显示整数,只需将其 DecimalPlaces property 设置为 0。

【讨论】:

  • 我希望在 textBox2 中输入的数字字符串值,在 textBox17 中显示为 int 值。有可能吗?
  • @CrystaliseMoriwaki:是的。您需要将 TextChanged 事件处理程序添加到 textBox2。在处理程序中读取 textBox2 中的字符串值并对其执行 int.TryCast() 。如果演员表有效,请将其分配给 textBox17。如果没有,请将其设置为“错误”或您选择的某些消息。
【解决方案2】:

你有:

converted.Year = textBox2.Text;
textBox17.Text = converted.Year;

这是有效的,尽管你所做的只是复制一个字符串。

那么你有:

int year2 = int.Parse(converted.Year);

这也很好 - 但如果字符串不代表 int 会崩溃(“32”很好,“bob”会崩溃,“32bob”也会崩溃)

那么你有:

converted.Year = year2.ToString();

如果它没有崩溃,则不应给出与上面第一行不同的任何值。

【讨论】:

    【解决方案3】:

    textBox.Text 只能接受一个字符串。因此,在获取/设置文本时,您必须使用 int.Parse 和 ToString。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-11
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多