我正在使用第三方网络服务,我想添加值以匹配服务引用类,我不知道如何为以下内容添加值:
参考:
public partial class UserInfor: object, System.ComponentModel.INotifyPropertyChanged
{
private ABC[] listOfABCField;
public ABC[] ListOfABC
{
get {
return this.listOfABCField;
}
set {
this.listOfABCField = value;
this.RaisePropertyChanged("ListOfABC");
}
}
}
public partial class ABC : object, System.ComponentModel.INotifyPropertyChanged
{
private string ipField;
private string fristNameField;
private string lastNameField;
}
/////////////////////////////////////////////// /////// 在我的service.asmx文件中试图将值设置如下: 在下面的代码我在行ABC [] abc = new ABC [0]中得到异常;错误代码:(NullReferenceException)
UserInfor user = new UserInfor();
ABC[] abc=new ABC[0];
abc[0].firstName= "petter";
abc[0].lastName = "lee";
user.ListOfABC = abc[1];
我也试过了
在下面的代码中,我在行user.ListOfABC [0] = abc;错误代码:(NullReferenceException)
UserInfor user = new UserInfor();
ABC abc=new ABC[0];
abc.firstName= "petter";
abc.lastName = "lee";
user.ListOfABC[0] = abc;
任何想法如何将abc添加到用户类?提前谢谢你
答案 0 :(得分:3)
如果您使用List<>
而不是数组,这可能会更容易。更改属性:
private List<ABC> listOfABCField;
public List<ABC> ListOfABC
{
// etc.
}
不要忘记在类的构造函数中初始化它,因此它不是null:
public UserInfor()
{
listOfABCField = new List<ABC>();
}
然后你可以添加一个对象,它不需要你尝试使用的任何数组语法:
UserInfor user = new UserInfor();
ABC abc = new ABC();
abc.firstName= "petter";
abc.lastName = "lee";
user.ListOfABC.Add(abc);
答案 1 :(得分:1)
你做错了,首先实例化数组,如果你事先知道它将包含多少项,那么在方括号中指定它,如:
ABC[] abc=new ABC[1]; // this array will contain 1 item maximum
现在实例化该项目,然后设置属性值:
abc[0] = new ABC(); // instantiating first item of array which is at 0th index
abc[0].firstName= "petter";
abc[0].lastName = "lee";
如果您不知道会有多少项,请使用List<T>