gpt4 book ai didi

c# - 为什么是 int.Parse(NumericUpDown.Value.ToString())?

转载 作者:行者123 更新时间:2023-11-30 12:26:20 24 4
gpt4 key购买 nike

我在一个项目中反复遇到过这种模式:

int myIntValue = int.Parse(myNumericUpDown.Value.ToString());

这对我来说似乎有点疯狂,从十进制中获取一个字符串,然后解析该字符串以获取一个 int,我想知道我是否遗漏了什么需要它。看来必须刻意才行。是否有应该使用而不是显而易见的方法的原因:

int myIntValue = (int)myNumericUpDown.Value;

或者:

int myIntValue = Convert.ToInt32(myNumericUpDown.Value);

最佳答案

当然,我们无法了解最初编写该代码的程序员的想法,但是通过字符串进行数字转换对于新程序员来说是很常见的。大概他们先写了

int myIntValue = myNumericUpDown.Value

遇到编译器错误,找到 Int32.Parse 并将各个部分放在一起。

确实没有理由根本首先将其转换为字符串,然后从中解析一个整数 - 如果有的话,它是低效且难以阅读的。

事实上请注意,如果出于某种原因 ToString 给出了一个实际的十进制数(例如 3.0 而不是 3),代码将抛出未捕获的 System.FormatException。假设您在运行时没有看到该异常,我推断控件的设置使得 Value 属性始终是一个整数,而不是像 1.932 这样的东西,因此我认为将它作为整数获取的最快方法是硬转换

int myIntValue = (int)myNumericUpDown.Value;

(并添加一个 try/catch 以防您的表单设计者搞砸并将控件的初始值设置为 0.5)。

关于c# - 为什么是 int.Parse(NumericUpDown.Value.ToString())?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29128757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com