访问从自定义类创建的对象

时间:2012-02-04 23:23:34

标签: c# class object

我认为我遇到的问题与我对类和对象的理解有关。

这个问题分为两部分。

  1. 为什么我看不到对象car1将文本框设置为car1.name的值。
  2. 如何在我的代码后面的任何按钮或方法中访问car1对象。

    protected void Page_Load(object sender, EventArgs e)
    {
        Cars car1 = new Cars();
        car1.Name = "Chevy";
    
    }
    
    protected void Button1_Click(object sender, EventArgs e)
    {
    
       TextBox1.Text = car1.Name.ToString();
    
    }
    
  3. car1.Name.ToString();在按钮操作中不可见。

2 个答案:

答案 0 :(得分:3)

您在car1方法中声明Page_Load变量,使其仅对该方法可见。

你需要把它变成一个字段 - 在所有方法中声明它

Cars car1;

protected void Page_Load(object sender, EventArgs e)
{
    car1 = new Cars();
    car1.Name = "Chevy";
}

protected void Button1_Click(object sender, EventArgs e)
{
   TextBox1.Text = car1.Name.ToString();
}

完成此操作后,您需要注意仅在初始化后调用car1上的方法(即我示例中的Page_Load的第一行),否则您将获得NullReferenceException }。

可以避免可能的异常的替代方法是在声明期间初始化,就像您在示例中所做的那样(仅作为字段而不是方法变量):

Cars car1 = new Cars();
protected void Page_Load(object sender, EventArgs e)
{
    car1.Name = "Chevy";
}

protected void Button1_Click(object sender, EventArgs e)
{
   TextBox1.Text = car1.Name.ToString();
}

答案 1 :(得分:-1)

我建议将Car放入课堂中的一个属性,并使用viewstate。

public Cars Car {
get {
    return (Cars) ViewState["Car"];
}
set {
    ViewState["Car"] = value;
}
}