Option Strict was off在我的VB应用程序中,所以现在我已经打开了它。我现在有一些错误,我就如何解决不确定:什么是将Double转换为Integer的最佳方式
pnlWait.Top = (Height - pnlWait.Height)/2
在C#我只想做:
pnlWait.Top = (int)(Height - pnlWait.Height)/2;
但是,这并不在VB中工作。我尝试Decimal.ToInt32
,但后来抱怨,因为它正在创建一个Double
与部门和没有Double.ToInt32
。 Interger.Parse
需要String
,所以这不会有任何好处。
pnlWait.Top = Integer.Parse(((Height - pnlWait.Height)/2).ToString) 'Yeah, right!
这让我觉得CType
或DirectCast
可能是好的,但这些方法对许多对象工作,所以我不认为他们可能是有效的。
我总是使用Convert.ToInt32([双]) – soohoonigan
为该* *特别可以使用整数除法代码:'pnlWait.Top =(高度 - pnlWait.Height)\ 2' – Plutonix
参考材料[类型转换函数(Visual Basic)](https://msdn.microsoft.com/en-us/library/s2dy91zy.aspx?f=255&MSPPError=-2147217396)建议使用语言实现的转换运算符并将其留给编译器以选择转换方法。我对构成最佳转换方法的构成有些矛盾。有些方法涉及四舍五入,您应该知道,其他方法可能会影响性能的调用链,我的建议是知道您使用的工具;即RTFM。 :) – TnTinMn