【问题标题】:How to create an object with generated name? [closed]如何创建具有生成名称的对象? [关闭]
【发布时间】:2017-01-10 14:34:06
【问题描述】:

通常我会使用

MyObject Obj1 = new MyObject(constructors);

但我需要的是代码为我创建一个对象并根据变量为它自己分配一个名称。

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

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

那我该怎么做呢?

【问题讨论】:

  • 这似乎是一个 xy 问题,您实际上想要实现什么?看来你应该试试Dictionary<String, MyObject>,关键是名字。
  • c# 不能有效地做到这一点。编译器不会做这样的事情。也许你想要一本字典?
  • 我不清楚你在这里实际想要做什么。你能详细说明一下吗?
  • 如果我猜对了,你就是生成代码。它不应该超过string code = "MyObject "+ generatedName + " = new MyObject();";然后将其写入文件
  • 你在使用代码生成器吗?

标签: c# class object generator


【解决方案1】:

您正在寻找Dictionary<TKey,TValue>。这使您可以使用字符串作为“键”并将实例作为值。

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

您可以稍后使用相同的键查找和使用您的对象

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

【讨论】:

  • @Yvette 我也不是,但这很有可能。哦,看,有人投了反对票。我不知道为什么。
  • 没有迹象表明这是 OP 想要的。
  • @DanielA.White - 当它是一个明显的 XY 时,有时它有助于在行之间阅读。有机会我错了,但很有可能我是对的。我见过一千个类似的问题。
  • 如果你不标记为重复:)
  • 哦,看。 OP勾选答案。惊喜惊喜。 @Bronsoner 不客气。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-06
  • 2017-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多