Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 什么是内在值类型?_Vb.net_Visual Studio 2010 - Fatal编程技术网

Vb.net 什么是内在值类型?

Vb.net 什么是内在值类型?,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,什么是内在价值类型,与非内在价值类型有什么区别 在Visual Studio的VB.Net项目属性的编译页中,我找不到有关“函数返回内部值类型而不返回值”选项效果的文档。在这种情况下,“内部”可以视为“内置”选项 而且这似乎不是所有相关的,你只是错过了回报 在这种情况下,“固有”可以被视为“内置” 而且这似乎不是所有相关的,你只是错过了回报 你说得对,这里似乎没有任何文档 考虑以下代码: Module Module1 Sub Main() Console.WriteLi

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

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

在这种情况下,“内部”可以视为“内置”选项

而且这似乎不是所有相关的,你只是错过了回报

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


而且这似乎不是所有相关的,你只是错过了回报

你说得对,这里似乎没有任何文档

考虑以下代码:

Module Module1

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

        Console.ReadKey()

    End Sub

    Function Foo() As Integer

    End Function

End Module
默认项目属性“函数返回内在值类型而不返回值”设置为“警告”,编译时会出现以下警告:

警告BC42353:函数“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
不是

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


我认为这是我们能得到的最好的。你说得对,这里似乎没有任何文档

考虑以下代码:

Module Module1

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

        Console.ReadKey()

    End Sub

    Function Foo() As Integer

    End Function

End Module
默认项目属性“函数返回内在值类型而不返回值”设置为“警告”,编译时会出现以下警告:

警告BC42353:函数“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
不是

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


我认为这是我们能得到的最好的结果。

那么“Object”是一种内在的引用类型(不管这意味着什么),其他的是内在的值类型?@Tiago Yes;从这一证据中,我猜想“内在”仅仅意味着“在mscorlib中定义”…@AakashM:
System.Guid
是在mscorlib中定义的值类型,但它不是内在类型(即,没有丢失的返回值警告)。@Heinzi我的意思是“在mscorlib中定义为内在”。在编辑评论的宽限期过后,现在已经有点晚了:)@AakashM:它似乎正是那些需要编辑评论的类型。因此,我假设它不是在mscorlib(语言不可知)中硬编码的,而是在编译器中;从这一证据中,我猜想“内在”仅仅意味着“在mscorlib中定义”…@AakashM:
System.Guid
是在mscorlib中定义的值类型,但它不是内在类型(即,没有丢失的返回值警告)。@Heinzi我的意思是“在mscorlib中定义为内在”。在编辑评论的宽限期过后,现在已经有点晚了:)@AakashM:它似乎正是那些需要编辑评论的类型。因此,我假设它不是在mscorlib(语言不可知)中硬编码的,而是在编译器中。当设置为warning/error时,该选项在编译项目时没有标记任何内容。但是我找不到任何文档,而且我是一个超级类型。当设置为警告/错误时,该选项在编译项目时没有标记任何内容。但我找不到任何文档,我是一个傲慢的人。