2012-03-11 21 views
1

私はC#でプロジェクトに取り組んでいます。私はアンドロイドにバンドルのようなものが必要です。なにか提案を?C#のバンドルのようなものはありますか?

編集: 私はバンドルが誰にとっても明らかではないという考えを持っていました。 Dictionaryのように機能しますが、ほとんどのもの(文字列、int、オブジェクト...)をその中に置き、キーに基づいて必要なものを検索することができます。

+0

あなたは何をしようとしていますか?正確にはどのような機能ですか?あなたは前後にセッションの状態を渡そうとしていますか?あなたは動的オブジェクトを作成したいですか? –

+0

私はいくつかの文字列、オブジェクトのパックを作り、それを別のメソッドに渡そうとしています。アンドロイドではバンドルで処理されますが、C#でどうやってやるかわかりません。 – Daniel

+0

定義したクラスにこれらの値を入れないのはなぜですか?あなたを買う「束」とは何ですか? –

答えて

2

何かを置くことができる辞書が必要な場合は、C#で何か(まれな例外を除いて)がobjectであることを認識するだけで済みます。だから、Dictionary<string, object>を作成してください。

しかし、私はあなたに良い解決策を考え出すようお勧めします。 C#の優れた点の1つは、型保証されていることです。そして、ここでは、バグにつながる可能性のある問題を回避しようとしています。

0

あなたが達成しようとしていることを正確に伝えることはできませんが、あるウィンドウのフォームから別のウィンドウのフォームに値を渡そうとしているとは限りません。あなたがそうしようとしている場合は、次の操作を行います。

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

C#では、あなたはちょうどあなたがクラスの場合と同様に、別の形式に渡って変数を渡します。 Form1クラスのコンストラクターで特定のパラメーターを追加し、Form1を表示する場合は、フォームに渡す変数で新しいフォームを初期化します。

+0

バンドルは、パックのように動作し、ほとんど何も入れずに別のメソッドやクラスに渡すことができます。それらはキーによって呼び出されます。それは辞書のようなものですが、バンドルにはあなたが望むものを混ぜて渡すことができます。 – Daniel

+1

私が知る限り、C#ではBundleクラスのようなものは何もありません。オブジェクトのリストを格納する独自のカスタムクラスを作成することができます。そうでなければ、私の答えで言ったことは唯一の他の方法だと思います。 –

+0

答えが得られない場合は、自分のクラスを作成するよりも、他に選択肢がないと思います。 – Daniel

1

あなたはおそらくより強く型付けされた言語に合わせ構文を使用する必要がありますが...

あなたがdynamicオブジェクトまたはDictionary<String, Object>あるいはDictionary<Object, Object>のいずれかを必要とするように見えます。

1

バンドルは「メソッド間に値を渡す」ものではありません。これは、プロセスの境界を越えてデータを移動するためのメカニズムです。方法とコンセプトの両方がAndroid固有のものです。それをエミュレートするには、オブジェクトのマップを実装するものが、リモートプロセスを含む別のプロセスで実行されているコードで使用できる必要があります。この状況を処理することは私の知識の範囲を超えているので、私はこれ以上アドバイスを提供することはできません。

オープンソースでBundleの定義を読むことは、いつでも歓迎します。

関連する問題