2012-03-11 126 views
1

我正在與一個項目與C#和我需要像我們在Android上的捆綁的東西。任何建議?有沒有像C#中的Bundle一樣的東西?

編輯: 我知道捆綁包對每個人都不清楚。它的工作原理與Dictionary類似,但你可以在其中放入幾乎任何東西(string,int,object ...),並根據鍵找到你想要的東西。

+0

你想做什麼?什麼功能?你是否想要來回傳遞會話狀態?你想創建一個動態對象嗎? – 2012-03-11 01:33:22

+0

我正在嘗試製作一些字符串,對象並將其傳遞給另一種方法。在Android上,它是由捆綁處理,但我不知道如何在C#上做到這一點。 – Daniel 2012-03-11 01:36:00

+0

爲什麼你不把這些值放在你定義的類中。什麼是「捆綁」購買你? – 2012-03-11 01:37:59

回答

2

如果你想要一個字典,你可以在其中放置任何東西,你只需要認識到C#中的任何東西(極少數例外)都是object。所以,只需創建Dictionary<string, object>

但我建議你嘗試想出一個更好的解決方案。關於C#的好處之一是它是類型安全的。在這裏你正在努力解決這個問題,這可能會導致錯誤。

0

我不能確切地告訴你想要完成什麼,但據我可以告訴你試圖將值從一個窗體傳遞到另一個窗體。如果你想這樣做,那麼你這樣做:

// Example objects 
Object myObject; 
String myString; 
Form1 myForm = new Form1(myObjects, myString); 
myForm.show(); 

在C#中,你通過變量跨越到另一種形式,就像你會爲一類。在Form1類的構造函數中添加特定參數,然後在想要顯示Form1時,使用要傳遞到表單上的變量初始化新窗體。

+0

捆綁包就像一個包,你幾乎可以放入任何東西並傳遞給另一個方法或類。然後他們被調用的關鍵。這是像字典,但在捆綁你可以混合任何你想要的,並通過它。 – Daniel 2012-03-11 01:45:46

+1

據我所知,C#中沒有像Bundle類那樣的東西。您可以創建自己的自定義類來存儲對象列表。否則,我認爲我在答案中所說的是唯一的另一種方式。 – 2012-03-11 01:52:09

+0

如果我沒有得到任何答案,我想我沒有別的選擇,而不是創建自己的班級。 – Daniel 2012-03-11 01:53:55

1

雖然你可能應該使用結構與強類型語言更加符合...

看起來你需要或者dynamic對象或Dictionary<String, Object>甚至Dictionary<Object, Object>

1

Bundle不是「只是在方法之間傳遞值」。這是跨越流程邊界移動數據的機制。這個方法和概念都是針對Android的。爲了模擬它,你需要一些實現了對象映射的東西可以被在另一個進程中運行的代碼使用,包括遠程進程。我無法提供任何建議,因爲處理這種情況超出了我的理解。

歡迎您閱讀開源中Bundle的定義。

相關問題