之前的一个后续问题:我在Form1 : Form
课程中创建了一个对象:
public struct POStruct
{
public List<string> staticCustInfo;
public List<List<string>> itemCollection;
public int testInt;
}
POStruct myObject = new POStruct();
但是,当我尝试从myObject
访问public void ItemSubmit_Click_1(object sender, EventArgs e)
时,我收到错误消息,说明它未实例化。我以为我已经用行POStruct myObject = new POStruct();
?
感谢您的帮助。
答案 0 :(得分:1)
您可能正在使用结构的一个成员而不首先初始化它。无论如何,结构实际上不能为空,但它们的成员可以。
换句话说,myObject
不为空,实际上不能为空,因为它是结构类型的变量。但是从您的问题来看,它听起来像myObject.staticCustInfo
和myObject.itemCollection
。
但是没有看到触发异常的确切代码,我所能做的只是猜测。
答案 1 :(得分:0)
您正在实例化POStruct,但该结构有两个未实例化的List<>
个对象。实例化myObject时,需要将这两个属性设置为有用的属性,例如:
POStruct myObject = new POStruct();
myObject.StaticCustInfo = new List<string>();
myObject.itemCollection = new List<List<string>>();
如果这没有用,你可以发布整个类,包括事件处理程序,确切的消息以及触发异常的代码行吗?