我在 VB.NET 中编写了以下代码:
Dim obj As Object
obj = "00"
Test(obj)
MsgBox(obj)
Private Sub Test(ByRef num As Integer)
End Sub
Private Sub Test(ByVal num As Integer)
End Sub
当值“00”在“Test”方法中通过“ByRef”传递时,它转换为0。但是如果值“00”通过“ByVal”传递,它保持与“00”相同的值。传递的值如何仅根据签名进行转换?
在 VB6 中虽然默认的传递类型是“ByRef”,但相同的代码仍然保持相同的值(“00”)
谁能解释 VB6 和 VB.NET 中这种矛盾行为背后的原因?