迭代我很驚訝(和恐懼),下面的代碼在Vb.Net工作〜2-d陣列中VB.Net
Dim test2DArr As String(,) = {{"A", "B"}, {"C", "D"}}
For Each s As String In test2DArr
MsgBox(s)
Next
當運行時,四個消息框彈出顯示「A」,「 B「,」C「,然後是」D「。
換句話說,它具有完全相同的行爲:
Dim test1DArr As String() = {"A", "B", "C", "D"}
For Each s As String In test1DArr
MsgBox(s)
Next
有人能解釋一下這個「功能」?我需要在這裏強加一些顯然不被支持的結構。以上第一個代碼示例應是:
Dim test2DArr As String(,) = {{"A", "B"}, {"C", "D"}}
For Each arr As String(,) In test2DArr
MsgBox(arr(0) & ", " & arr(1))
Next
和應產生兩個消息框:「A,B」和「C,d」,但是編譯器堅持認爲通過2 d陣列迭代產生一個字符串序列,而不是字符串數組序列。
我做錯了什麼或者是.Net的二維數組的實現真的很脆弱嗎?
+1這對我來說絕對是迷人的。如果其他讀者想要親自體驗它,我會在這裏設置這種情況(http://rextester.com/rundotnet?code=SSBCAH17268)。 – ckittel