此代码生成错误:
用于未分配的局部变量'namespace2'
XNamespace namespace2;
string partText = Declaration.partText;
Declaration.partText = string.Empty;
string str = "";
IEnumerable<XElement> source = InputXDoc.Descendants(Function.GetNamespace(ref namespace2, "").GetName("body"));
if (source.Descendants<XElement>(Function.GetNamespace(ref namespace2, "").GetName("div")).Count<XElement>() > 0)
{
IEnumerable<XElement> introduced5 = InputXDoc.Descendants(Function.GetNamespace(ref namespace2, "").GetName("body"));
if (introduced5.Descendants<XElement>(Function.GetNamespace(ref namespace2, "").GetName("div")).First<XElement>().Attributes("id").Count<XAttribute>() > 0)
{
IEnumerable<XElement> introduced6 = InputXDoc.Descendants(Function.GetNamespace(ref namespace2, "").GetName("body"));
this.ChapterName = introduced6.Descendants<XElement>(Function.GetNamespace(ref namespace2, "").GetName("div")).First<XElement>().Attributes("id").First<XAttribute>().Value;
}
}
为什么我会遇到这个?
答案 0 :(得分:2)
来自ref
的{{1}}:
必须初始化传递给ref参数的参数 在它通过之前。这不同于out参数,其参数 在传递之前不必显式初始化。对于 更多信息,请参阅。
所以你需要写:
XNamespace namespace2 = null;
无论如何,初始化变量总是很好的做法!
注意:我已初始化为null
因为我不知道您的参数实际需要初始化为什么。检查您正在呼叫的功能的文档,您可能需要将其作为其他功能。