C#对象数组,无法设置值

时间:2014-12-04 15:16:58

标签: c# arrays oop object

class City
{
    string name;

    public string getName()
    {
        return name;
    }

    public void setName(String value)
    {
        name = value;
    }
}

static void Main(string[] args)
{
    City[] arr = new City[1];
    arr[0].setName("New York");
}

问题是我得到了#34; System.NullReferenceException","对象引用未设置为对象的实例。"在我设置名称到纽约的行。如果我这样做:

City city = new City();
city.setName("New York");

我没有收到任何错误,但我想使用数组,因为我将添加更多对象。这在C#中是否可行,因为它在C ++中?是唯一的方法来声明5个对象,设置它们的名称,然后创建一个数组并将它们放入其中?

2 个答案:

答案 0 :(得分:3)

您正在创建一个空数组。在分配对象之前,必须先初始化对象:

City[] arr = new City[1];
arr[0] = new City();
arr[0].setName("New York");

答案 1 :(得分:1)

这一行只创建一个包含一个元素的数组。

City[] arr = new City[1];

元素为空。

您需要为其指定一个值

arr[0] = new City();

然后你可以访问它。

arr[0].setName("New York");