2016-09-02 13 views
1

通常、私は生成された名前でオブジェクトを作成する方法は?

MyObject Obj1 = new MyObject(constructors); 

を使用しかし、私に必要なのは、コードが私のためにオブジェクトを作成し、変数に基づいて、それ自体で、それのために名前を割り当てるためであると思います。

string objectname = HakunaMatata 
MyObject [I want HakunaMatata here] = new MyObject; 

objectname = SomethingNew 
MyObject [I want SomethingNew here] = new MyObject; 

どうすればいいですか?

+7

同じキーを使用して、オブジェクトを使用するルックアップできますか? 'Dictionary 'を試してみてください。キーは名前です。 –

+2

c#はそれを効果的に行うことはできません。コンパイラはそのようなことをしません。おそらくあなたは代わりに辞書をしたいですか? –

+1

ここで実際に何をしようとしているのかはわかりません。もう少し詳しく説明できますか? – David

答えて

4

あなたはDictionary<TKey,TValue>を探しています。これにより、文字列を「キー」として使用し、インスタンスを値として持つことができます。

string objectname = "HakunaMatata" 
var myDictionary = new Dictionary<string,MyObject>(); 
myDictionary.Add(objectname, new MyObject()); // what a wonderful day! 

後で&これはあなたが実際に達成しようとしているものを、XY-問題のようです

MyObject makunaMatataInstance = myDictionary["HakunaMatata"]; // or use the variable "objectname" again 
+0

私は感動しています、私は本当にオペアンプが望んでいたか分からなかった。 –

+0

@Yvetteも私もいないが、これはかなり可能性が高い。ああ、誰かがdownvotedしています。なぜ私は考えていない。 – Jamiec

+1

これは、OPが望んでいることを示すものではありません。 –

関連する問題