首页 文章

不包含定义定义

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

[更新]现在它说:

'System.Collections.Generic.List'不包含'add'的定义,也没有扩展方法'add'接受类型为'System.Collections.Generic.List'的第一个参数'(你是否缺少using指令)或汇编参考?)

2 回答

  • 2

    删除 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());
            }
     }
    
  • 5

    要解决此问题,请将其更改为以下内容

    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 . 这不是语言所必需的,但却是首选的样式 .

相关问题