2012-03-11 128 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的定义。

相关问题