在转换类型时,我发现自己使用了VB函数和BCL Convert.To *方法。
EG)*微妙* VB函数和Convert.To *函数之间的差异?
Cstr()
与Convert.ToString()
CInt()
与Convert.ToInt32()
CDbl()
与Convert.ToInt64()
- 等...
是否有任何细微的差异应注意?
在转换类型时,我发现自己使用了VB函数和BCL Convert.To *方法。
EG)*微妙* VB函数和Convert.To *函数之间的差异?
Cstr()
与Convert.ToString()
CInt()
与Convert.ToInt32()
CDbl()
与Convert.ToInt64()
是否有任何细微的差异应注意?
这已覆盖原则before,但肯定也有差异:基本上VB助手会做额外的工作,为您获得通过,其中仿制药会抛出异常的解析,和一般,但不是普遍的VB助手速度更快(尽管我不知道它是否显着),因为它们真的只是IL糖。季节去品尝。
编辑:This guy覆盖它比我更好。
编辑Redux:Joel Coehoorn也推荐precursor to the above article,显然他的袖子有一些标杆。
乔尔写道:
摘要是CINT()是一个操作员 ,而Convert.ToInt32()是一个 功能。 (int)x之间的位置为 ;和 Convert.ToInt32(x);.
我刚刚发现了另一个很大的差异,我认为这里值得一提 - 尽管在OP之后几年! CInt({Boolean expression})
计算结果为-1时True
,而Convert.ToInt<n>
计算结果为1
这可能赶出来的人谁是使用前者在数学分析,例如:
For i As Integer = 0 To 1 - CInt(processThirdItem) 'Evaluates to -1 (1 - -1 = 2)
'Do stuff...
Next
因此,在地方CInt
止跌的使用Convert.ToInt32
除非您将运营商从-
更改为+
,否则不起作用。
当然.NET的短路If
功能现在提供了一个更好的方法来做到这一点:
For i As Integer = 0 to If(processThirdItem, 2, 1)
'Do stuff...
Next
咦:你做了修改,同时我研究我的职务 - 主要是寻找(并未能找到)我提到的基准链接。这很有趣,因为你的链接是同一作者对我发布的内容的跟进。如果您进行了另一次编辑以包含两者,我将删除我的帖子以支持您的帖子。 – 2009-02-19 17:16:26