我有以下代码:
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)
答案 0 :(得分:2)
答案 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;