返回列表 上一主題 發帖

[發問] 傳值呼叫(Call By Value)

[發問] 傳值呼叫(Call By Value)

下列是用call By Value的程式碼,顯示的數值是10,我想請問一下各位就是a沒有宣告,那a是x的複製值嗎?sub那邊不太了解?希望有先進解釋一下
Module Module1

    Sub Main()
        Dim x As Integer = 10
        Call Square(x)
        Console.WriteLine(x)
        Console.ReadKey()
    End Sub
    Sub Square(ByVal a As Integer)
       a = a ^ 2
    End Sub

End Module

變數a 是有宣告喔!
Sub Square(ByVal a As Integer) '宣告a變數為數值,ByVal 則是無回傳值。

ex1
Sub Main()
Dim x As Integer = 10
Call Square(x)
msgbox.show(x)'還是10
End Sub

Sub Square(ByVal a As Integer)
a = a +a
End Sub


ex2
Sub Main()
Dim x As Integer = 10
Call Square(x)
msgbox.show(x)'回傳Square運算過的值,等於20。
End Sub

Sub Square(Byref a As Integer)
a = a +a
End Sub
若是我回答,使您滿意,請您讓我知道!                  
若是我的回覆,您仍有其他見解,也請您不嗇指教!

TOP

        靜思自在 : 為自己找藉口的人永遠不會進步。
返回列表 上一主題