确定类型是引用类型还是值类型

时间:2010-10-13 15:40:42

标签: vb.net

我来自汇编程序和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是引用类型。但是,它是什么使它成为这样而不是价值类型?

1 个答案:

答案 0 :(得分:3)

一般来说 - 枚举和结构是value types,类接口和委托是reference types

至于将类声明为值类型 - 这是不可能的,但C#结构非常接近类,而值类型。

至于VB.NET,我相信等价的是Structure语句:

  

Structure语句定义了一个可以自定义的复合值类型。