gpt4 book ai didi

c# - 为什么我不能创建对象实例?

转载 作者:行者123 更新时间:2023-11-30 19:52:49 33 4
gpt4 key购买 nike

我需要将对象添加到列表中,但我不明白如何正确地进行。我从控制台获得的每个新对象。如何解决?

我的尝试:

namespace ExampleCars
{
public class Car
{
public string name;
public int speed;
public Car(string name, int speed)
{
this.name = name;
this.speed = speed;
}
}

class Program
{
static void Main(string[] args)
{
string name;
int speed, elements;
List<Object> cars = new List<Object>();

elements = Convert.ToInt32(Console.ReadLine());
if (elements > 0)
{
for (int i = 0; i < n; i++)
{
name = Convert.ToString(Console.ReadLine());
speed = Convert.ToInt32(Console.ReadLine());
Car newCar = new Car(name, speed);
cars.Add(newCar);
}
}

foreach (var oneCar in cars)
Console.WriteLine(oneCar);
}
}
}

在控制台中我得到这个(elements == 1):

ExampleCars.Car

最佳答案

首先,最好创建CarsList,而不是Objects 的列表。所以改变这个:

List<Object> cars = new List<Object>();

对此:

List<Car> cars = new List<Car>();

另外,如果您使用属性而不是字段,那就太好了。最后,作为您问题的解决方案,并根据您需要在上一个 Console.Writeline 方法中显示的内容,您可以覆盖 ToString方法。你的类(class)应该是这样的:

public class Car
{
public string Name { get; set; }
public int Speed { get; set; }
public Car(string name, int speed)
{
Name = name;
Speed = speed;
}

public override string ToString()
{
return $"Name = {Name}, Speed = {Speed} ";
}
}

如果您使用的是旧版本的 C#:

return String.Format("Name = {0}, Speed = {1}", Name, Speed);

$ 称为字符串插值,可从 C#6+ 获得。我使用旧版本的 C# 中提供的 String.Format 提供了它的等效项。

关于c# - 为什么我不能创建对象实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53129840/

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