我来自汇编程序和C / C ++背景,因此我理解了vb.net中引用类型与值类型背后的概念。此外,我已阅读Jon Skeet's article有关参考和价值类型的内容,我完全了解这一点。
我的问题是:如何判断给定类型是引用类型还是值类型?
是否只是所有整数类型(整数,浮点数等)都是值类型而且所有类都是引用类型? (如果是这样,字符串在哪里落下?)
问题2(相关):有没有办法将类声明为值类而不是引用类?例如(使用极简):
Public Class MyClass1
Public Value As Integer
End Class
使用此课程:
Dim test1 As New MyClass1
test1.Value = 1
Dim test2 As MyClass1
test2 = test1
test2.Value = 2
在此代码的末尾,Test1中的值为2.显然,MyClass1是引用类型。但是,它是什么使它成为这样而不是价值类型?
答案 0 :(得分:3)
一般来说 - 枚举和结构是value types,类接口和委托是reference types。
至于将类声明为值类型 - 这是不可能的,但C#结构非常接近类,而是值类型。
至于VB.NET,我相信等价的是Structure
语句:
Structure语句定义了一个可以自定义的复合值类型。