我不是一名专业程序员,大部分都是自学成才。目前我的项目是为使用C#for Windows phone编写的应用程序创建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'” 我会接受你们可以给我的任何建议。
答案 0 :(得分:3)
this
始终是对当前对象(其成员函数正在执行)的引用。因此this._parser
称为"field"或“成员变量”。必须在类定义中定义这些字段。你没有向我们展示完整的类定义,但它肯定不存在。这就是编译器抱怨的内容。
看起来应该是这样的:
class Foo {
private XMLParser _parser;
// your functions, like btnparse_Click
}
或者,如果您只想在该功能的上下文中使用解析器,只需将其设为local variable:
private void btnparse_Click(object sender, RoutedEventArgs e)
{
XMLParser parser = XMLParser.Instance;
...
您还可以使用implicitly typed local variable:
private void btnparse_Click(object sender, RoutedEventArgs e)
{
var parser = XMLParser.Instance;
...
答案 1 :(得分:0)
检查_parser是否定义为类变量或者它是否是父类中的变量(如果您的类继承了基类)。我没有看过整个代码,但这就是错误所暗示的。