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

时间:2015-05-25 14:48:09

标签: c#

例如:

car Audi = new car();

是否可以这样:

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

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

4 个答案:

答案 0 :(得分:2)

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

使用Dictionary

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

答案 1 :(得分:2)

不,你不能。在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);

然后你可以:

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

    Console.WriteLine(name2);
}

答案 2 :(得分:1)

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

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

答案 3 :(得分:-2)

我能想到的唯一方法就是

的C#版本
car = Car() //basically Python way of initializing car

del car

car = Thing()