关于c#:对象引用未设置为对象的实例

Object reference not set to an instance of an object

我有以下代码-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
private static void convert()
    {
        string csv = File.ReadAllText("test.csv");
        XDocument doc = ConvertCsvToXML(csv, new[] {"," });
        doc.Save("update.xml");

        XmlTextReader reader = new XmlTextReader("update.xml");
        XmlDocument testDoc = new XmlDocument();
        testDoc.Load(@"update.xml");

        XDocument turnip = XDocument.Load("update.xml");
        webservice.function[] test = new webservice.function[1];
        webservice.function CallWebService = new webservice.function();

        foreach(XElement el in turnip.Descendants("row"))
        {
                            test[0].com = System.Convert.ToInt32(el.Descendants("var").Where(x => (string)x.Attribute("name") =="com").SingleOrDefault().Attribute("value").Value);
            test[0].Centre = el.Descendants("var").Where(x => (string)x.Attribute("name") =="Centre").SingleOrDefault().Attribute("value").Value;
            test[0].CCentre = el.Descendants("var").Where(x => (string)x.Attribute("name") =="CCentre").SingleOrDefault().Attribute("value").Value;

            MessageBox.Show(test[0].person,"person");
            MessageBox.Show(System.Convert.ToString(test[0].actually),"Actually");
            MessageBox.Show(System.Convert.ToString(test[0].com),"Com");

            CallWebService.updateFeedStatus(test);
        }

出现错误-nullreferenceException未处理,说明对象引用未设置为对象的实例。第一行测试[0]发生错误。帐户。

我怎样才能克服这个问题?


初始化数组不会初始化数组中的对象。尝试在下面添加第二行(假设要使用默认构造函数):

1
2
webservice.singleSummary[] test = new webservice.singleSummary[1];
test[0] = new webservice.singleSummary();

  • 在进程上放置调试程序。
  • 标识生成错误的代码行。(假设为Visual Studio)
  • 逐个测试该行上的对象引用,直到确定哪个引用具有空引用为止。
  • 在行前进行空检查以解决问题。

  • 我猜想您的XML有一个名称空间,您需要在Xname中包含所需元素,但是正如其他注释所提到的,没有完全公开,几乎没有什么可以做到的。