不包含定义定义

时间:2014-01-15 14:12:04

标签: c#

在我声明之后,这是我得到的错误

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'的定义,并且没有可以找到接受类型'MasterPage_Profile'的第一个参数的扩展方法'LabelTextList'(您是否缺少using指令或程序集引用?)< / p>

[更新]现在说:

'System.Collections.Generic.List'不包含'add'的定义,并且没有扩展方法'add'接受类型'System.Collections.Generic.List'的第一个参数可以找到(你错过了吗?) using指令或程序集引用?)

2 个答案:

答案 0 :(得分: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());
        }
 }

答案 1 :(得分: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。这不是语言所必需的,但却是首选的样式。