如何使用字符串内容作为对象名称创建新对象

时间:2014-07-09 15:32:34

标签: c#

我正在尝试使用“objectName”命名Person对象,如下所示,但没有成功, 任何帮助?怎么做?

string objectNameString = "objectName";
Person objectNameString = new Person();

我尝试从多个用户输入创建一个Person列表,名称在列表中必须是唯一的。

3 个答案:

答案 0 :(得分:0)

以下内容应使用Person中的字符串创建objectNameString的新实例。

string objectNameString = "Person";

var person = System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(objectNameString );

答案 1 :(得分:0)

如果您想使用objectNameString变量的值,使用DictionaryExpandoObject是您可以获得的最接近的值:

Dictionary<string, object> someObject = new Dictionary<string, object>();
someObject[objectNameString] = new Person();

Person p = (Person)someObject[objectNameString];

或者,如果您只添加Person,则字典可能看起来像Dictionary<string, Person>

答案 2 :(得分:0)

我想我得到了你的问题。你有一个字符串(例如来自用户输入)。并且您想要创建一个具有前面提到的字符串的变量名称的Person。

Dictionary<string, Person> someObject = new Dictionary<string, Person>();
string objectNameString = "objectName";
someObject[objectNameString] = new Person();