C#对象数组

Bar*_*000 2 c# asp.net

我已经使用了两个类"地址"和"请求"的Web服务.请求对象的一个​​属性是地址对象数组:

request _req = new request();
_req.addresses = // expecting address[]
Run Code Online (Sandbox Code Playgroud)

我知道我做错了(因为我不断出现异常错误),所以我希望有人可以帮助我.如何创建地址对象数组并将"_req.addresses"值设置为等于该对象(address [])?当我尝试将城市值设置为等于字符串_q.LocationA.City时,我在第二行上得到"对象引用未设置为实例..."错误...所以这些不起作用:

    address[] _address = new address[1];
    _address[0].city = _q.LocationA.City;
    _address[0].state = _q.LocationA.State;
    _address[0].street = _q.LocationA.Address;
    _address[0].zipCode = _q.LocationA.Zip;

    request _req = new request();
    _req.addresses = _address;
Run Code Online (Sandbox Code Playgroud)

我试过这个:

    address _address = new address();
    _address.city = _q.LocationA.City;
    _address.state = _q.LocationA.State;
    _address.street = _q.LocationA.Address;
    _address.zipCode = _q.LocationA.Zip;

    request _req = new request();
    _req.addresses[0] = _address;
Run Code Online (Sandbox Code Playgroud)

Mic*_*sen 9

您的类需要与数组分开实例化.C#不会自动调用您的构造函数,因此这就是您在第一组代码中获得NullPointerException的原因.第二个代码失败是因为你给它一个对象,而不是一个数组.

你基本上需要将两者结合起来:

address[] _address = new address[1];
_address[0] = new address();
_address[0].city = _q.LocationA.City;
_address[0].state = _q.LocationA.State;
_address[0].street = _q.LocationA.Address;
_address[0].zipCode = _q.LocationA.Zip;

request _req = new request();
_req.addresses = _address;
Run Code Online (Sandbox Code Playgroud)