2011-02-15 46 views
0

什麼是內在價值類型,與非內在價值類型有什麼區別?什麼是內在價值類型?

我找不到有關選項「返回沒有返回值的內在值類型的函數」效果的文檔。在Visual Studio的VB.Net項目屬性的「編譯」頁面中。

回答

3

你說得對,這裏似乎沒有任何文件。

考慮以下代碼:

Module Module1 

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

     Console.ReadKey() 

    End Sub 

    Function Foo() As Integer 

    End Function 

End Module 

使用默認的項目屬性,其中有「功能,無需返回值返回內在價值類型」設置爲警告,這編譯這個警告:

警告BC42353:函數'Foo'不返回所有代碼路徑上的值。你是否錯過了'Return'聲明?

和輸出

美孚是0

通過設置項目屬性錯誤,我們可以作出一個錯誤此警告停止編譯。

的「內在」部分發揮作用,如果我們改變代碼這樣:

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

我認爲是最好的,我們將得到。

+0

然後「對象」是一個內在的引用類型(不管那意味着什麼),其他的是內在的值類型? – tiago2014 2011-02-15 14:11:14

2

在這種情況下,「內在」可以被視爲「內置」。

而這似乎並不是所有相關的,你只是錯過了一個回報。

+1

該選項在設置爲警告/錯誤時編譯項目時沒有標記任何內容。但我找不到任何文檔,而且我是一個超級好用的類型。 – tiago2014 2011-02-18 20:12:19