哪个是使用System.Convert.ToInt64函数的正确方法?

时间:2011-10-03 19:46:17

标签: .net vb.net

我有以下代码:

 Dim len As Int32 = 1000
 Dim rdlen As Int64 = 2000000000000
 Dim totlen As Int64

使用 System.Convert.ToInt64 功能的正确方法是哪个示例?

示例一:

 totlen = System.Convert.ToInt64(rdlen + len)

示例二:

 totlen = rdlen + System.Convert.ToInt64(len)

3 个答案:

答案 0 :(得分:2)

两个表达式都会评估相同的内容。

Int32Int64之间有implicit conversion,所以即使是以下工作:

totlen = rdlen + len

答案 1 :(得分:0)

我认为这两个例子都是正确的。至少在c#。

当A和B具有不同的整数类型时,编译器应将它们转换为相同的类型以便执行A + B.因此它在计算A + B之前将它们都转换为Int64。

答案 2 :(得分:0)

它可以正常工作,也可以在没有转换的情况下工作,因为32位整数将被加宽以使用64位整数。

你不应该使用Convert类进行这样的转换,你应该只使用强制语法。

如果你想在代码中准确地显示正在发生的事情,或者如果你想确保它真的以你的方式进行,你可以在添加之前将32位整数转换为64位:

totlen = rdlen + (Int64)len;
然而,它将生成与此完全相同的代码,因为将隐式转换32位整数:

totlen = rdlen + len;