Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在运行时在C#中动态创建和命名对象?_C#_.net_Dynamic - Fatal编程技术网

如何在运行时在C#中动态创建和命名对象?

如何在运行时在C#中动态创建和命名对象?,c#,.net,dynamic,C#,.net,Dynamic,我希望在运行时动态创建并命名我的对象的实例,因为我将它们添加到一个列表类中,我不知怎么地认为这在c#中是一件简单的事情,但到目前为止,我找不到关于如何实现这一点的任何信息 对于简短的描述,我有一个自定义类,在运行时,我希望创建一个数组列表,并用custon类的对象填充它,但在将对象添加到列表时,使用循环索引和标准名称命名这些对象 这可能吗?如果要给它们命名,请将它们添加到映射中,而不是列表中。对象在.NET中没有名称 另外,不要使用ArrayList类。使用列表。有点奇怪,因为你不能“命名”对象

我希望在运行时动态创建并命名我的对象的实例,因为我将它们添加到一个列表类中,我不知怎么地认为这在c#中是一件简单的事情,但到目前为止,我找不到关于如何实现这一点的任何信息

对于简短的描述,我有一个自定义类,在运行时,我希望创建一个数组列表,并用custon类的对象填充它,但在将对象添加到列表时,使用循环索引和标准名称命名这些对象


这可能吗?

如果要给它们命名,请将它们添加到映射中,而不是列表中。

对象在.NET中没有名称


另外,不要使用
ArrayList
类。使用
列表

有点奇怪,因为你不能“命名”对象


但是,您可以使用通用字典(
字典
)来完成听起来像是您在尝试实现的事情。字典中的字符串键有点像对象名,键对应的值包含对象实例。

您是否正在寻找类似..?

您可以拥有一个允许您通过索引访问其元素的列表,或者拥有一个允许您对任何特定类型进行相同操作的命令:

List<YourClass> yourList = new List<YourClass>();
YourClass instance = new YourClass();
yourList.Add(instance);
YourClass instance2 = yourList[0];
List yourList=新列表();
YourClass实例=新建YourClass();
添加(实例);
YourClass实例2=yourList[0];
例如,如果希望词典带有字符串键(“名称”):

dictorial dict=new dictorial();
YourClass实例=新建YourClass();
dict.Add(“someName”,实例);
YourClass instance2=dict[“someName”];

与PHP不同,C#中没有内置的集合类型,允许您通过索引或键访问其成员。不过,您可以自己创建。

我为不清楚表示歉意。现在是0430,我早该上床睡觉了:)桑德斯你说得很对。这里不想争论,但我想说的恰恰相反,因为你通常会在某个时候将对象分配给变量,即使只是模糊地将它们埋在一个列表中,通过这个列表,你可以在代码中找到并识别它们。。。有效地为他们提供了一个分类名称。同样,您始终可以选择为对象提供名称属性。。。想想看,任何语言,无论是视觉上的还是其他方面的,都是如此。:-)听起来OP在这里谈论的不是变量,而是对象。一般来说,物体没有名字。我现在醒着,全力以赴地射击,但S Robins准确地描述了我当时试图实现的目标。很抱歉,这不够清晰,但连续28个小时以上起床可能会影响一个人的推理能力
Dictonary<string, YourClass> dict = new Dictonary<string, YourClass>();
YourClass instance = new YourClass();
dict.Add("someName", instance);
YourClass instance2 = dict["someName"];