我可以在c#中设置新对象变量的名称吗?

我可以在c#中设置新对象变量的名称吗?,c#,C#,例如: car Audi = new car(); 有没有可能这样做: string name = Microsoft.VisualBasic.Interaction.InputBox("Name of new car?", "Add car"); car name = new car(); 抱歉,如果这是一个愚蠢或重复的问题。不,您不能这样做。但您可以为类似的内容使用不同的数据结构 使用字典 Dictionary<string, car> dictionary = new Di

例如:

car Audi = new car();
有没有可能这样做:

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

抱歉,如果这是一个愚蠢或重复的问题。

不,您不能这样做。但您可以为类似的内容使用不同的数据结构

使用
字典

Dictionary<string, car> dictionary = new Dictionary<string,car>();
if(!dictionary.ContainsKey(name))
{
     dictionary.Add(name, new car());
}
Dictionary Dictionary=newdictionary();
如果(!dictionary.ContainsKey(名称))
{
添加(名称,新车());
}
不,你不能。在C#中,必须在编译时知道变量及其名称

你能做的就是收集你所有的汽车。。。比如:

var allmycars = new Dictionary<string, Car>();

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

car mycar = new car();
allmycars.Add(name, mycar);
var allmycars=newdictionary();
字符串名称=Microsoft.VisualBasic.Interaction.InputBox(“新车名称?”,“添加汽车”);
我的车=新车();
添加(名称,mycar);
然后你可以:

foreach (KeyValuePair<string, car> onecar in allmycars)
{
    string name2 = onecar.Key;
    car car2 = onecar.Value;

    Console.WriteLine(name2);
}
foreach(所有MyCars中的KeyValuePair onecar)
{
字符串名称2=onecar.Key;
car car2=一个car.值;
控制台写入线(名称2);
}

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


由于您试图在运行时编译程序后命名该变量,因此不会有任何区别,因为它不再是人类可读的名称

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

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

del car

car = Thing()

是的,这是一个愚蠢的问题,但至少你知道:-)但这是一个常见的问题,所以不要难过:-)所以这不是一个真正愚蠢的问题。。。假设这是一块普通的垫脚石:-)一种成年礼。但这可能吗?我仍然不太擅长编程,目前正在制作一个我想使用类似这样东西的程序。不,你不能。如果可能的话,您将如何访问它?每次在我的表单应用程序中,我都会将它作为dropdownbox的新行,然后使它成为您访问的是您在dropdownlist中选择的。您需要从内存中删除该变量。可能需要一些东西谢谢你,这太棒了!