C# C-如何使用同一对象多次使用不同的值?

C# C-如何使用同一对象多次使用不同的值?,c#,python,list,object,C#,Python,List,Object,我来自Python背景,在OOP方面,Python允许您多次使用对象并为对象分配不同的值 例如,在Python中,我可以执行以下操作: class Car: def __init__(self, make, model, colour): self.make = make self.model = model self.colour = colour carList = [] car = Car("Ford", "Mondeo", "Re

我来自Python背景,在OOP方面,Python允许您多次使用对象并为对象分配不同的值

例如,在Python中,我可以执行以下操作:

class Car:
    def __init__(self, make, model, colour):
        self.make = make
        self.model = model
        self.colour = colour

carList = []
car = Car("Ford", "Mondeo", "Red")
carList.append(car)
car = Car("Ford", "Focus", "Silver")
carList.append(car)
print(carList[0].make + " " + carList[0].model)
print(carList[1].make + " " + carList[1].model)
产出将是:

Ford Mondeo
Ford Focus
在C中,这将是不同的,如果有人愿意告诉我为什么会这样,我将不胜感激

代码:

此外,如果我不可能在这里做我想做的事情,我将如何着手解决这个问题以实现同样的目标?我之所以想这样做,是因为我希望能够动态地创建一个对象,而不是硬编码一组最终用户要填充的对象

提前感谢。

您应该创建两个不同的Car class实例:


这和你现在做的不一样。如果查看Python语句,您将创建两个新对象。

C中的等价物是

car = new Car("Ford", "Mondeo", "Red");
carList.Add(car);
car = new Car("Ford", "Focus", "Silver");
carList.Add(car);
在Python中,这将创建两个不同的Car对象,它们彼此无关,除了类型:

卡福德,蒙迪欧,红色 CarFord,Focus,Silver 因此,在C中,还应创建两个不同的汽车对象:

新卡福德,蒙迪欧,红色; 新卡福德,焦点,银牌; 因此,您的汽车制造商可能应该如下所示:

公共Carstring mke、string mdl、string clr { make=mke; 模型=mdl; 颜色=clr; }
实际上,创建两个不同的Car实例正是OP的Python代码所做的。当我试着自己调试代码时,我试着做Car=newcar;再一次,而不是像你说的,做汽车=新车;。有道理。所有的答案都是正确的,所以谢谢大家。我之所以选择它,仅仅是因为它向我展示了如何缩短代码。
Ford Focus
Ford Focus
List<Car> carList = new List<Car>();
Car car = new Car();

car.carDesc("Ford", "Mondeo", "Red");
carList.Add(car);

// You should add this: creating another instance of Car class
car = new Car();

car.carDesc("Ford", "Focus", "Silver");
carList.Add(car);

Console.WriteLine(carList[0].getMake() + " " + carList[0].getModel());
Console.WriteLine(carList[1].getMake() + " " + carList[1].getModel());
Console.ReadKey();
car = Car("Ford", "Mondeo", "Red")
carList.append(car)
car = Car("Ford", "Focus", "Silver")
car = new Car("Ford", "Mondeo", "Red");
carList.Add(car);
car = new Car("Ford", "Focus", "Silver");
carList.Add(car);