我正在编写一个调用某些erp类/函数的程序(erp已经过时,并且没有任何支持)。我无法定义“对象”,并希望在这方面提供一些帮助。提前谢谢
我有一个班级typeUDDBTble
(下面的定义)。
我的编码是。
typeUDDBTbl UDDB = new typeUDDBTbl();
UDDB.name = "xxxx";
UDDB.Rec = new typeRec[1];
// Edited, incorrect code
// UDDB[0].Items = new typeFld[1];
UDDB.Rec[0].Items = new typeFld[1];
Items是一个对象数组。我尝试使用new Object[1]
或其他type(typeFld)
,但都获得了
对象引用未设置为对象的实例
知道如何解决这个问题吗?
定义:
public partial class typeUDDBTbl : object, System.ComponentModel.INotifyPropertyChanged
{
private typeRec[] recField;
private string nameField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Rec", Order = 0)]
public typeRec[] Rec
{
get
{
return this.recField;
}
set
{
this.recField = value;
this.RaisePropertyChanged("Rec");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(DataType = "token")]
public string name
{
get
{
return this.nameField;
}
set
{
this.nameField = value;
this.RaisePropertyChanged("name");
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null))
{
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
public partial class typeRec : object, System.ComponentModel.INotifyPropertyChanged
{
private object[] itemsField;
private string dummyField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Fld", typeof(typeFld), Order = 0)]
[System.Xml.Serialization.XmlElementAttribute("LangFld", typeof(typeLangFld), Order = 0)]
public object[] Items
{
get
{
return this.itemsField;
}
set
{
this.itemsField = value;
this.RaisePropertyChanged("Items");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(DataType = "token")]
public string dummy
{
get
{
return this.dummyField;
}
set
{
this.dummyField = value;
this.RaisePropertyChanged("dummy");
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName)
{
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null))
{
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
public partial class typeFld : object, System.ComponentModel.INotifyPropertyChanged
{
private string nameField;
private string valueField;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(DataType = "token")]
public string name
{
get
{
return this.nameField;
}
set
{
this.nameField = value;
this.RaisePropertyChanged("name");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTextAttribute()]
public string Value
{
get
{
return this.valueField;
}
set
{
this.valueField = value;
this.RaisePropertyChanged("Value");
}
}
答案 0 :(得分:0)
这是不正确的:
UDDB[0].Items = new typeFld[1];
UDDB
的类型为typeUDDBTbl
,没有索引器方法。
它似乎也没有名为Items
的属性。
答案 1 :(得分:0)
您的typeUDDBTble不包含索引器,因此您尝试使用方括号访问其对象无效。
我想你的意思是:
UDDB.Rec[0].Items = ...
此外,除非您需要其他例外,否则您必须初始化Rec
中的第一个单元格。
UDDB.Rec[0] = new typeRec();
UDDB.Rec[0].Items = new object[1]