昨天在聖殿祭司的部落格看了這篇文章後,對於VB在暱名型別上的實作非常疑問,於是寫了些程式碼來測試一下。

 
       Dim temp() = {New With {.name = "aa", .age = 10}, _
                      New With {.name = "bb", .age = 11}, _
                      New With {.name = "cc", .age = 10}}
       For Each Item In temp
            Console.WriteLine(Item.name)
       Next
而執行的結果如下:
點圖放大 
但在寫程式的時候,我發現以下的狀況
點圖放大 
之後我再寫了其它的程式碼來測試
        Dim Models() = {New With {.Name = "Kevin", .Sex = "Male", .Country = "USA", _
.Height = 180, .Weight = 75, .PhoneNo = "0912-456789"}, _
New With {.Name = "Mary", .Sex = "Female", .Country = "UK", _
.Height = 174, .Weight = 53, .PhoneNo = "0915-333278"}}
For Each Item In Models
Console.WriteLine(Item.Sex)
Console.WriteLine(Item.Name)
Console.WriteLine()
Next
Console.WriteLine(Models.GetType().ToString())

執行結果如下:

點圖放大

之後祭司在他的部落格提到,這究竟是強型別還是弱型別?我想這個問題已經可以解釋為什麼前面的程式碼不會出現IntelliSense了。 而VB在暱名型別上的確有實作,但就是沒實作暱名型別的陣列,這點真的很令人疑問。

PS:第一次去研究VB的東西,好不習慣....

全站熱搜

卑微研究生 發表在 痞客邦 留言(0) 人氣()