繁体   English   中英

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

[英]Can I make the name of a new object variable in c#?

例如:

car Audi = new car();

是否可能是这样的:

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

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

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

使用Dictionary

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

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

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

由于在运行时编译程序后尝试命名变量,因此不会有任何区别,因为它不再是易于理解的名称。

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

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

del car

car = Thing()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM