gpt4 book ai didi

c# - 在构造函数中初始化一个类的数组

转载 作者:行者123 更新时间:2023-12-04 05:01:50 27 4
gpt4 key购买 nike

我有课Garage它的属性是 Car 类型的数组,这是程序中的另一个类。我已经尝试了几次迭代,并且大多数都出现了运行时错误。我得到一个 NullRefernceException每当我尝试运行它时。这发生在 Program我尝试访问 CarLot 的长度属性的类大批。

我知道这与 CarLot 有关Garage 的属性(property)类是一个数组,而不仅仅是 Car .我在这里缺少什么,以便在程序尝试使用数组时不会将数组设置为 null?

class Program
{
static void Main(string[] args)
{
Garage g = new Garage();
//this is where the exception occurs
g.CarLot[0] = new Car(5, "car model");
Console.ReadLine();
}
}

public class Garage
{
public Car[] CarLot { get; set; }
public Garage() { }
//this should be able to be 0 or greater
public Garage(params Car[] c)
{
Car[] cars = { };
CarLot = cars;
}
}

public class Car
{
public int VIN { get; set; }
public int Year { get; set; }
public string Model { get; set; }
public Car(int _vin, string _model)
{
_vin = VIN;
_model = Model;
}
public Car() { }
public void Print()
{
Console.WriteLine("Here is some information about the car {0} and {1} ");
}
}

最佳答案

当在 Main 中调用无参数构造函数时,您可以使用私有(private)变量来初始化数组,而不是使用数组的自动属性。

例如

private Car[] carLot = new Car[size];
public Car[] CarLot
{
get { return carLot; }
set { carLot = value; }
}

或者,在 Garage 的无参数构造函数中,您可以继续并在该点初始化数组。

无论哪种方式,都必须先实例化您的数组,然后才能为其赋值。
http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx

关于c# - 在构造函数中初始化一个类的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16073753/

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