我可以在c#中创建一个新对象变量的名称吗?
本文关键字:变量 对象 一个 创建 我可以 新对象 | 更新日期: 2023-09-27 17:50:37
例如:
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, 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);
}
不,你不能那样做。但是对于类似的东西,你可以使用不同的数据结构。
使用Dictionary
Dictionary<string, car> dictionary = new Dictionary<string,car>();
if(!dictionary.ContainsKey(name))
{
dictionary.Add(name, new car());
}
这是不可能的,因为每当编译程序时,变量名都会转换为内存中的地址。
由于您在运行时编译程序后尝试命名变量,因此它不再是人类可读的名称,因此不会产生差异。
我能想到的唯一方法就是c#版本的
car = Car() //basically Python way of initializing car
del car
car = Thing()