2011-09-27 25 views
4

我有一個對象的對象,我不知道如何訪問這些值。下面是來自VS調試器的圖片:在C#中,括號表示法不起作用時,如何訪問對象的對象?

Debugger shows objects

問題的對象是界限。我想獲得的價值像7,14,157和174這樣:

bounds[0] //Should equal 7 
bounds[3] //Should equal 174 

顯然,這是行不通的,因爲它不是一個數組,但對象的對象。你能解釋一下正確的方法來訪問嵌套在邊界對象內的數值嗎?

謝謝!

+1

聲明的界限如何?你的意思是它是一組對象嗎?如同「對象[]邊界」一樣;「?不 - 你說的不是 - 那麼界限究竟是什麼? –

+0

@ The Evil Greebo:它是一個盒裝雙數'{object []}'的數組,作爲一個對象本身裝箱。所以格雷格是對的,你需要兩次解鎖。 – BoltClock

+0

啊,現在我明白了。謝謝。 –

回答

11

您需要將boundsobject轉換爲object[],從數組中獲取值,然後將其轉換爲double

object[] array = (object[])bounds; 
object value = array[0]; 
double number = (double)value; 

或一行

double value = (double)((object[])bounds)[0]; 

如果你把你的號碼在首位雙數組,然後你能避免所有的鑄件。

double[] bounds = new double[x]; 
... populate array 
double value = bounds[0]; 

而且, 「括號記號」 是知道作爲indexers

+2

這就像[通過包裹](http://en.wikipedia.org/wiki/Pass_the_parcel),除了你是唯一的球員:/ – BoltClock

+0

@格雷格 - 感謝您的快速回復。 double value =(double)((object [])bounds [0])產生:無法將[]的索引應用於'object'類型的表達式。這聽起來對嗎? –

+0

@Hairgami_Master - 呃,我把一個括號放在錯誤的地方。現在已經修復了。電腦太挑剔了! – Greg