我在一个正在处理的项目中反复遇到这种模式:
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] 删除。
我来说两句