2014-01-15 121 views
1

我声明在此之后,这是错误我得到不包含定义认定中

protected void Page_Load(object sender, EventArgs e) 
{ 
     List<String> LabelTextList = new List<String>(); 
     dr = cmd.ExecuteReader(); 
     while (dr.Read()) 
     { 
     LabelTextList.add(dr[0].ToString()); 
     } 
} 

错误1“MasterPage_Profile”不包含关于“LabelTextList”和没有扩展方法的定义“LabelTextList”接受类型“MasterPage_Profile”的第一个参数可以发现(?是否缺少using指令或程序集引用)

[更新]现在它说:

“System.Collections.Generic.List”不包含“添加”的定义并且没有扩展方法'add'接受类型'System.Collections.Generic.List'的第一个参数可能被发现(你是否缺少使用指令或程序集引用?)

+1

开始列表 LabelTextList = new List ();应该是列表 labelTextList =新列表();和this.LabelTextList.add(dr [0] .ToString());应该是labelTextList.add(dr [0] .ToString()); –

+0

,除非你已经声明了一个名为LabelTextList的字段,那么你不会使用this关键字来获取它。你已经在方法级别范围内,所以这不是必需的,不适用 – owen79

+0

@PaulZahra我改变了它。名称'labelTextList'在当前上下文中不存在。 – user3021598

回答

5

删除this - LabelTextList是一个局部变量。

protected void Page_Load(object sender, EventArgs e) 
{ 
     List<String> LabelTextList = new List<String>(); 
     dr = cmd.ExecuteReader(); 
     while (dr.Read()) 
     { 
      LabelTextList.add(dr[0].ToString()); 
     } 
} 
+0

+1同意。很明显OP没有掌握C#OOP的基础知识。首先通过使用“this”引用一个局部变量。另外,不遵循基本的C#编码语法指南(例如,LabelTextList应该是labelTextList)。 – PhillyNJ

2

要将其解决此切换到以下

LabelTextList.Add(dr[0].ToString()); 

LabelTextList值是一个局部变量的定义。当您使用this.前缀表达式时,它会告诉编译器查找值的成员,而不是本地人。

这里是一个名为LabelTextList场如果保持值作为一个地方与this.

List<String> LabelTextList = new List<String>(); 
protected void Page_Load(object sender, EventArgs e) 
{ 
    dr = cmd.ExecuteReader(); 
    while (dr.Read()) 
    { 
     this.LabelTextList.Add(dr[0].ToString()); 
    } 
} 

而且工作的反例的标准命名模式将labelTextList而不是LabelTextList。这不是语言所要求的,但是是首选的风格。

+0

我改变了。但错误仍然出来。它仍然有相同的一个 – user3021598

+0

@ user3021598我的代码或Jakub的示例应该工作得很好。它至少应该消除你得到的最初的错误。你现在得到一个新的吗? – JaredPar

+0

是的,出现新的错误。名称'labelTextList'在当前上下文中不存在。 – user3021598

相关问题