我在C#中的学校作业有问题。
我在这里只包含部分代码,我希望它足够了。
我创建了一个带有索引25的Bottle类数组.Bottle类包含三个属性。
现在我需要在数组中获取和设置值,但我无法设法。
请参阅下面的示例。我哪里做错了?程序没有显示任何错误,但编译没有成功。如果需要更多代码,我很乐意给它!
public class Sodacrate
{
private Bottle[] bottles;
public Sodacrate() // Constructor for handling new sodas in the soda crate.
{
bottles = new Bottle[25];
bottles[0].Brand = "Fanta";
bottles[0].Price = 15;
bottles[0].Kind = "Soda";
}
}
public class Bottle
{
private string brand;
private double price;
private string kind;
public string Brand
{
get { return brand; }
set { brand = value; }
}
public double Price
{
get { return price; }
set { price = value; }
}
public string Kind
{
get { return kind; }
set { kind = value; }
}
}
答案 0 :(得分:2)
数组的零索引没有对象。你正在做的是在这里为数组设置内存:
bottles = new Bottle[25];
然后您正在尝试在此处设置该数组中第一个对象的属性:
bottles[0].Brand = "Fanta";
bottles[0].Price = 15;
bottles[0].Kind = "Soda";
缺少的是以下内容:
bottles[0] = new Bottle();
所以总结这里是你在做什么:
//Give me a box big enough to hold 25 bottles
//Set the brand on the first bottle
这就是你应该做的事情:
//Give me a box big enough to hold 25 bottles
//Put the first bottle in the box
//Set the brand on the first bottle
答案 1 :(得分:0)
因为Bottle是一个引用类型,所以这个语句将创建一个包含25个元素的数组,其值为引用类型的默认值,为null。
bottles = new Bottle[25];
因此,您必须在使用前为瓶子[0]指定值。像这样:
bottles[0] = new Bottle();