我可以在c#中创建一个新对象变量的名称吗?

例如:

car Audi = new car(); 

有可能是这样的:

 string name = Microsoft.VisualBasic.Interaction.InputBox("Name of new car?", "Add car"); car name = new car(); 

对不起,如果这是一个愚蠢或重复的问题。

不,你不能。 在C#中,必须在编译时知道变量及其名称……

你可以做的是有一个集合,把你的所有汽车放在哪里…喜欢:

 var allmycars = new Dictionary(); string name = Microsoft.VisualBasic.Interaction.InputBox("Name of new car?", "Add car"); car mycar = new car(); allmycars.Add(name, mycar); 

然后你可以:

 foreach (KeyValuePair onecar in allmycars) { string name2 = onecar.Key; car car2 = onecar.Value; Console.WriteLine(name2); } 

不,你不能那样做。 但是你可以使用不同的数据结构来实现类似的东西。

使用Dictionary

 Dictionary dictionary = new Dictionary(); if(!dictionary.ContainsKey(name)) { dictionary.Add(name, new car()); } 

这是不可能的,因为每当编译程序时,变量名都会转换为内存中的地址。

由于您在运行时编译程序后尝试命名该变量,因此它不再有用,因为它不再是人类可读的名称。

我能想到的唯一方法就是C#版本

 car = Car() //basically Python way of initializing car del car car = Thing()