为什么要使用int.Parse(NumericUpDown.Value.ToString())?

毫微微管

我在一个正在处理的项目中反复遇到这种模式:

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)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么要使用.toString(32)而不是.toString(36)?

为什么StringBuffer的toString()方法使用Arrays.copyOfRange(value,0,count)?

String(value)vs value.toString()有什么区别

为什么要使用Local <Value> :: New和String :: New()

什么是toString()?为什么与this.toString()不同?

Convert.ToString(string value)有什么作用吗?

int.Parse(e.CommandArgument.ToString())未显示

使用重写的toString()的toString()的重写

为什么要使用int / int = int?

需要使用 getSelection() 澄清 toString() 方法

Kotlin:为什么要转换 Int.toString?

测试toString时,为什么需要调用toString?

在 ToString 覆盖中使用 ToString 时出错

指定要在dv.Table.Rows(x)(VALUE).ToString()中使用的行

Java枚举-为什么使用toString代替名称

为什么隐式使用ToString()不会导致异常?

为什么“ T.super.toString()”和“ super :: toString”使用合成访问器方法?

为什么使用`Buffer.concat(body).toString();`而不是`Uint8Array / Buffer.toString()`

使用ToString作为变量

自动使用 toString()?

Java toString()使用反射?

何时使用toString()方法

如何使用 SimpleDateFormat.parse() 将 Calendar.toString() 转换为日期?

这是为什么toString()方法造成的StackOverflowError?

为什么Function.toString这样工作?

为什么我的toString()打印此内容?

为什么除非我先将toString()声明为变量,否则为什么不能在其上使用toString()?

为什么 Intellisense 不建议使用 NumericUpDown 的 Text 属性?

需要使用toString打印Arraylist以及添加/删除元素