2010-08-05 24 views
2

這個片段的代碼陣列元組的不工作

Tuple<int,double>[, ,] myArray = new Tuple<int, double>() [xsize, ysize, zsize]; 

返回此錯誤

無法應用用[]索引到類型 '元組'

凡的 表達我正在使用定義爲hereTuple結構。

感謝您的幫助,非常感謝本網站的作者,本網站爲我的日常工作提供了很多幫助。

+3

當你說「不工作」,你是什麼意思? – 2010-08-05 11:45:04

+3

@Lasse冒煙,衝浪,玩遊戲,聊天...... – bzlm 2010-08-05 11:47:40

+1

在你包含的帖子中定義的'Tuple'有三個值('Tuple '),你只用了兩個。我希望這不是你遇到的問題,但我只是想指出。 – 2010-08-05 11:56:40

回答

11

我猜,你想這樣的:

Tuple<int,double>[, ,] myArray = new Tuple<int, double>[xsize, ysize, zsize]; 
                 ↑ 
           note: removed the() ───┘ 
1

創建數組是從創建在任何其他對象,你不指定構造函數的參數列表略有不同。在new Tuple<int, double>之後刪除()以解決您的問題。

+0

不要忘記對象初始值設定項。它們也使默認構造函數的剩餘部分變得冗餘。 :) – bzlm 2010-08-05 11:49:11

+0

這只是可選的,你可以包括它們或不包括。不管怎樣,你不會得到任何編譯錯誤,所以它是純粹的語法糖,與創建不允許指定參數列表的數組的語法不同(真實,硬語法)。無論如何,我認爲OP至少應該知道*爲什麼*括號是多餘的,而不僅僅是告訴他*如何解決他的問題。儘管看起來其他SO-ers沒有找到具有任何附加價值的「原因」。 – 2010-08-05 11:55:56

+0

@Allon Guralnek:真的不清楚OP的問題可能是什麼,我們只能猜測。 '()'是顯而易見的,但不一定是實際的問題。因此,IMO提供*如何解決這個小問題是理智的,如果它解決了這個問題,那麼稍後將解釋它爲什麼解決它。 (如果OP一旦發現錯誤,OP就會立即知道* why *)。除此之外 - Lasse只是比你更快:-) – dtb 2010-08-05 12:07:39