日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

VB.net byval和byref

發布時間:2023/12/19 综合教程 23 生活家
生活随笔 收集整理的這篇文章主要介紹了 VB.net byval和byref 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

byval是將實參所占的內存空間復制一份出來;byref是給實參另起一個別名,就好像是一個人兩個名字。這兩個的區別針對于一般的數據類型,大家都非常的清楚,但是,當用遇到對象類型的變量的時候,要小心了,因為,對象類型的變量里存放的是對象所占內存空間的首地址,此時,無論用byval還是byref,對該對象的內部成員的操作都是針對同一塊內存空間。

實例

1、創建class1類,用戶參數的傳遞用

Public Class Class1
'變量
Private _name As String

'屬性
Property name() As String
'讀操作
Get
Return _name
End Get
'寫操作
Set(ByVal value As String)
_name = value
End Set
End Property
End Class

2、創建class2類,用于對參數的處理

Public Class Class2
Public Sub tryd(ByRef classx As Class1)
'通過形參修改 name
classx.name = "這個是《形參》操作的地址空間"
End Sub
End Class


3、新建控制臺應用程序,代碼如下:

Module Module1
Sub Main()
'定義class1類對象 進行參數的傳遞
Dim s As New Class1
s.name = "這個是《實參》操作的地址空間!"
'定義class2類 邏輯運算
Dim X As New Class2
'執行參數
X.tryd(s)
'輸出
Console.WriteLine(s.name)
'暫停畫面
Console.ReadLine()
End Sub
End Module

運行3執行的結果如下圖



byref中的實參和形參是一個人兩個名稱嗎?

1、class1類和上面的一樣

2、創建class2類,用來進行邏輯運算

Public Class Class2
Public Sub tryd(ByRef classx As Class1)
'形參的對象中創建新的class1
Dim y As New Class1
'賦值
y.name = "一個人,兩個名稱"

'給形參賦值
classx = y
End Sub
End Class

3、新建控制臺應用程序

Module Module1
Sub Main()
'定義class1類對象 進行參數的傳遞
Dim s As New Class1
'賦值
s.name = "不是同一個人,兩個名稱!"

'定義class2類 邏輯運算
Dim X As New Class2
'執行
X.tryd(s)

'輸出實參的name屬性
Console.WriteLine(s.name)

'暫停畫面
Console.ReadLine()
End Sub
End Module

執行3的結果如下圖


總結

以上是生活随笔為你收集整理的VB.net byval和byref的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。