C# C-如何使用同一对象多次使用不同的值?
我来自Python背景,在OOP方面,Python允许您多次使用对象并为对象分配不同的值 例如,在Python中,我可以执行以下操作: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
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);