C# 为什么会引发空引用异常?
有人能告诉我为什么会抛出null引用异常(object ref未设置为对象的实例)。我的代码读取一个简单的xml文件,然后将2个元素中的文本传递给另一个方法。但是,在foreach循环的第一行引发异常: 请原谅我的无知,我是新来的。:)C# 为什么会引发空引用异常?,c#,C#,有人能告诉我为什么会抛出null引用异常(object ref未设置为对象的实例)。我的代码读取一个简单的xml文件,然后将2个元素中的文本传递给另一个方法。但是,在foreach循环的第一行引发异常: 请原谅我的无知,我是新来的。:) 这意味着xprojects为空。 请发布projects.xml文件内容 问候, Omar将选择节点(“/ProjectName”)更改为选择节点(“/ProjectName”)。(当然,/ProjectType也一样) /ProjectName将始终从根目录中
这意味着
xprojects
为空。请发布projects.xml文件内容 问候,
Omar将
选择节点(“/ProjectName”)
更改为选择节点(“/ProjectName”)
。(当然,/ProjectType
也一样)
/ProjectName
将始终从根目录中选择,而不是从正在调用它的节点中选择。/
从当前节点开始。在进入foreach
循环之前,您是否设置了断点并检查了xprojects
是否不为空?从OP:中获取空值的位置?@DarthVader但是在foreach循环的第一行引发了异常
我猜没有带有ProjectName
,这是一个列表,为null/@user2008060-有关说明,请参阅我的回答的第二行是,它将抛出NullPointerException
private void openProjectToolStripMenuItem_Click(object sender, EventArgs e)
{
//I have to pass 'this' (which is Form1) when creating the Projects (Form2) in order for them to understand / see each other
Projects myProjects = new Projects(this);
//displays the Form 2 (called Projects)
myProjects.Show();
XmlDocument xdoc = new XmlDocument();
xdoc.Load("O:\\TestDaws\\projects.xml");
string projList = "/Projects/Project";
XmlNodeList xprojects = xdoc.SelectNodes(projList);
foreach (XmlNode xNodeName in xprojects)
{
string projectname = xNodeName.SelectNodes("/ProjectName")[0].InnerText.ToString();
string projecttype = xNodeName.SelectNodes("/ProjectType")[0].InnerText.ToString();
myProjects.buildProjectList(projectname, projecttype);
}
}