我讀過String,它是一個「引用類型」,與整數不同。 MS website引用和值類型
我試圖測試它的行爲。
Sub Main()
Dim s As New TheTest
s.TheString = "42"
Dim z As String = s.GimmeTheString
z = z & "000"
Dim E As String = s.TheString
s.GimmeByref(z)
end sub
Class TheTest
Public TheString As String
Public Function GimmeTheString() As String
Return TheString
End Function
Public Sub GimmeByref(s As String)
s = TheString
End Sub
End Class
因此,我期望:
- z爲同一基準TheString,從而TheString將被設置爲 「42000」
- 則Z爲通過參考由GimmeByref改性從而Z設定爲任何TheString是
實際結果:
- Z = 「42000」
- E = 「42」
- TheString = 「42」
什麼點我缺少什麼? 我也嘗試在GimmeByRef中添加「ByRef」:是的,顯然GimmeByRef確實按預期工作,但如果我將所有內容都稱爲Integer,它們也被稱爲「Value type」。 這些類型之間有任何實際的區別嗎?
的可能的複製[?是什麼在.NET結構和類之間的差別(https://stackoverflow.com/questions/13049/結構和網內類之間的差異) –
字符串也是不可變的。如果您從ByVal變量創建了一個新類,它將不會在方法調用後具有該值。 –