2012-04-19 56 views

回答

4

這裏使用的Collection類具有什麼實際上是overloaded indexer。我的重點:

無論是 位置或鍵返回Collection對象的特定元素。只讀。

Default Public ReadOnly Property Item(_ 
ByVal { Key As String | Index As Integer | Index As Object } _) As Object 

參數

密鑰

的唯一字符串表達式,它指定,而不是一個位置索引可使用的密鑰串,以訪問 集合的元素。鍵必須對應於將 元素添加到集合時指定的鍵參數。

指數

(A)的數值表達式,指定集合的​​元素的位置。索引必須是從1到數字 的數值屬性(集合對象)的數字。 (B)對象 表達式,該表達式指定集合的​​元素的位置或鍵字符串。

所以,如果你問AddrType(0),你所要求的收集,這對於這個基於1的集合是一個錯誤的零成員。但是,如果您要求AddrType("0"),您要求那個已加入密鑰"0"的會員。任何字符串都可以用作關鍵字 - 只是這裏使用的特定字符串是數字的字符串表示形式。

順便說一句,在風格上我會說寫CStr(0)而非"0"不是特別好...

+0

我幾乎覺得原來的程序員試圖首先使用0,當沒有正常工作,他確定該鍵是字符串。然後不假思索地把'CStr()'扔進去,它從未被給過別的想法。 – Bob77 2012-04-19 20:09:23

1

CSTR中()函數有用於訪問ADDRTYPE集合中的特定成員。集合可以通過數字索引或字符串鍵值來引用。所以簡短的回答是,整數不必必須轉換爲字符串才能訪問集合成員。爲什麼這個特定的編碼器選擇使用「0」作爲鍵值是未知的;它的確沒有比使用數字索引更具描述性,這將是字符串鍵值的唯一優勢。

相關問題