0

我不是专业的程序员,主要是自学成才。目前我的项目是为我用 C# 为 Windows 手机编写的应用程序创建一个 XML 解析器。要了解这一点,我正在尝试此处发布的演示:http: //www.developer.nokia.com/Community/Wiki/Parse_Local_XML_file_in_Windows_Phone

一切都很好,直到我进入以下部分:

     private void btnparse_Click(object sender, RoutedEventArgs e) 
    {
             this._parser = XMLParser.Instance;        
             StreamResourceInfo strm = Application.GetResourceStream(new Uri("/LocalXmlParsing;component/States.xml",UriKind.Relative));
     //needs to be done only once
             StreamReader reader = new StreamReader(strm.Stream);
             string data = reader.ReadToEnd();
             _parser.DataToParse = data;
             _parser.ParseStateData();
             lstStates.ItemsSource = _parser.StateCollection; 
}

我收到错误:“错误 2 当前上下文中不存在名称 '_parser'” 我会接受你们可以给我的任何建议。

4

2 回答 2

3

this始终是对当前对象(其成员函数正在对其执行)的引用。因此this._parser称为“字段”或“成员变量”。这些字段必须在类定义中定义。您没有向我们展示完整的类定义,但它肯定不存在。这就是编译器所抱怨的。

它应该看起来像这样:

class Foo {
    private XMLParser _parser;

    // your functions, like btnparse_Click
}

或者,如果您只想在该函数的上下文中使用解析器,只需将其设为局部变量

private void btnparse_Click(object sender, RoutedEventArgs e) 
{
    XMLParser parser = XMLParser.Instance;
    ...

您还可以使用隐式类型的局部变量

private void btnparse_Click(object sender, RoutedEventArgs e) 
{
    var parser = XMLParser.Instance;
    ...
于 2013-03-21T20:26:18.893 回答
0

检查 _parser 是否定义为类变量或者它是否是父类中的变量(如果您的类继承了基类)。我没有查看整个代码,但这就是错误所暗示的。

于 2013-03-21T20:27:04.793 回答