什么是内在价值类型?

时间:2011-02-15 12:35:25

标签: vb.net visual-studio-2010

什么是内在价值类型,与非内在价值类型的区别是什么?

我找不到关于“函数返回内部值类型而没有返回值”的效果的文档。在Visual Studio的VB.Net项目属性'编译页面。

2 个答案:

答案 0 :(得分:4)

你是对的,这里似乎没有任何文件。

考虑以下代码:

Module Module1

    Sub Main()
        Console.WriteLine("Foo() is {0}", Foo())

        Console.ReadKey()

    End Sub

    Function Foo() As Integer

    End Function

End Module

使用默认项目属性,其中“函数返回内部值类型没有返回值”设置为警告,这将编译此警告:

  

警告BC42353:函数'Foo'不会在所有代码路径上返回值。你错过了“退货”声明吗?

和输出

  

Foo为0

通过将该项目属性设置为Error,我们可以使此警告停止编译并显示错误。

如果我们将代码改为:

,那么'内在'部分就会发挥作用
Module Module1

    Sub Main()
        Console.WriteLine("Foo() is {0}", Foo())

        Console.ReadKey()

    End Sub

    Function Foo() As Bar

    End Function

End Module

Structure Bar
    Public a As Integer
End Structure

现在,即使Bar是值类型,代码也会在没有任何警告的情况下编译,无论项目属性设置为什么。因此,我们可以得出结论:Integer是'内在'值类型,但我们的Bar不是。

这没有告诉我们什么是“内在”价值类型。谷歌搜索,我发现this page告诉我,如果我启动对象浏览器,右键单击左侧窗格并告诉它按对象类型分组,我看到:

enter image description here

我认为这是我们最好的。

答案 1 :(得分:2)

在这种情况下,“内在”可以被视为“内置”。

似乎没有那么相关,你只是错过了回报。