如何使用字符串'的内容作为对象名创建一个新对象

本文关键字:对象 创建 新对象 一个 字符串 何使用 | 更新日期: 2023-09-27 18:12:05

我试图命名一个Person对象与"objectName"如下,但不成功,任何帮助吗?怎么做呢?

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

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

如何使用字符串'的内容作为对象名创建一个新对象

下面应该使用objectNameString的字符串创建Person的新实例。

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

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

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

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

我想我明白你的问题了。你有一个字符串(例如来自用户输入)。你想要创建一个Person它有前面提到的字符串的变量名。
Dictionary<string, Person> someObject = new Dictionary<string, Person>();
string objectNameString = "objectName";
someObject[objectNameString] = new Person();