什么是内在价值类型,与非内在价值类型的区别是什么?
我找不到关于“函数返回内部值类型而没有返回值”的效果的文档。在Visual Studio的VB.Net项目属性'编译页面。
答案 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告诉我,如果我启动对象浏览器,右键单击左侧窗格并告诉它按对象类型分组,我看到:
我认为这是我们最好的。
答案 1 :(得分:2)
似乎没有那么相关,你只是错过了回报。