доступ к объекту, созданному из пользовательского класса - PullRequest
0 голосов
/ 05 февраля 2012

Я думаю, что моя проблема связана с моим пониманием классов и объектов.

Вопрос состоит из двух частей.

  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();
    
    }
    

car1.Name.ToString(); не видно из действия кнопки.

Ответы [ 2 ]

3 голосов
/ 05 февраля 2012

Вы объявляете переменную 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 в моем примере), иначе вы будетеget 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();
}
0 голосов
/ 05 февраля 2012

Я бы предложил поместить Car в свойство класса и использовать viewstate.

public Cars Car {
get {
    return (Cars) ViewState["Car"];
}
set {
    ViewState["Car"] = value;
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...