gpt4 book ai didi

C#在按下按钮后创建一个类的新对象

转载 作者:太空宇宙 更新时间:2023-11-03 18:05:36 27 4
gpt4 key购买 nike

我从来没有编写过面向对象的程序,但现在我有了突破 :D

我使用 1 个按钮在 Visual Studio 中创建了一个简单的 Windows 窗体。如果我按下这个按钮,我想创建一个 car 类的对象。= 如果我按下按钮 20 次,我创建了 car 类的 20 个对象。

我知道如何像这样手动创建一个类:

Car myCar = new Car();

我怎样才能给每个对象一个不同的名字?或者这是错误的方式,我创建了一个数组对象(?我不知道数组对象是否存在)。

最佳答案

这不是特定于 OOO 的问题,但因为它与您在 C# 中的问题有关...

好吧,当您创建一个新对象时,除非您将它存储在某个地方,否则只要垃圾收集器运行,它就会被释放。正如史蒂夫在评论中提到的那样,如果您要存储 Car 的 20 个实例,您可能希望将它们存储在一个继承自 IEnumerable 通用对象(如 IList)的对象中,在这种情况下您不必按名称引用它们,而只是通过它们在 IList 中所在的索引:

IList<Car> list = new List<Car>();
for(var a = 0; a < 5; a++) {
list.Add(new Car());
}

//To access the second Car instance, remember that we have zero-based indices in the C# world, so you'd use...
Car instance = list[1];

这将产生第二个实例,而不必需要名称或其他唯一标识符。但是假设您确实为每个 Car 对象创建了某种唯一标识符,这些标识符是在您实例化对象时创建的,例如在以下构造函数中:

class Car {
public Car()
{
UniqueIdentifier = new Guid().ToString();
}

public string UniqueIdentifier { get; private set; }
}

每当您创建 Car 的新实例时,这将自动分配一个 GUID ,或者可以(出于此处的目的)在创建 Car 时假定为唯一的值。然后,在未来,假设您知道这些 GUID 值,您可以使用 LINQ 语句根据该特定 GUID 值从 IList 中提取您的 Car 实例:

Car specificCar = list.FirstOrDefault(list, a => a.UniqueIdentifier == "<YOUR SPECIFIC GUID VALUE>");

因此,您可以在此处使用一些选项来确定您希望如何访问新创建的对象。

关于C#在按下按钮后创建一个类的新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31898976/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com