下面的代码在C#中运行良好。
Int32 a, b;
Int16 c;
a = 0x7FFFFFFF;
b = a & 0xFFFF;
c = (Int16)b;但这段代码在VB.NET中使用OverflowException时会崩溃。
Dim a, b As Int32
Dim c As Int16
a = &H7FFFFFFF
b = a And &HFFFF
c = CType(b, Int16)这两个代码片段在我看来是一样的。有什么区别?如何将C#代码转换为VB.NET?
发布于 2010-12-06 15:59:43
http://www.cnblogs.com/liujq007/archive/2010/12/04/1896059.html
摘要:
对于无符号类型:只需执行And运算符,或2st方法。
Dim a As Byte = CByte(300 And &HFF)对有符号类型:向左移位n位,然后向右移位n位,这是为了扩展有符号位。N= (sizeof(type1) - sizeof(type2)) *8或VB:使用Len(新类型)而不是sizeof(类型)
Dim a As Short = CShort(34042 << 16 >> 16)您可以在下面的链接中找到详细信息。
https://stackoverflow.com/questions/1874130
复制相似问题