Не существует встроенного механизма для «сброса» значений всех свойств класса. Хотя есть способы, которыми вы могли бы это сделать, как прямолинейные (создать метод, который явно сбрасывает все значения свойств), а не прямолинейно (используя Reflection, чтобы найти все свойства и установить их значения), я бы не рекомендовал ни один из этих подходы к тому, как это звучит, как вы пытаетесь достичь.
Если у вас есть пользовательский интерфейс, который захватывает данные, отправляя эти данные где-то, а затем отбрасывая их, то, скорее всего, вам захочется просто создать новый экземпляр вашего объекта, а не пытаться его очистить.
В вашем примере я заметил, что в вашем свойстве имеется опорная переменная, статическая. Если у вас нет особых причин для этого, вы, вероятно, должны сделать ваши переменные нестатичными, в противном случае создание нового экземпляра вашего объекта не будет действительно иметь желаемого эффекта (прочитайте разницу между статическими и нестатистическими переменными если это не имеет для вас смысла).
Добавлен следующий пример кода в ответ на комментарий:
Вы могли бы передать свой объект данных между формами в качестве аргумента конструктора или в качестве общественной собственности на каждой форме.Например, ваш код может выглядеть примерно так: каждая форма имеет кнопку «Далее», которая при нажатии закрывает текущую форму и открывает следующую форму, используя тот же объект данных. Объект MyDataClass передается каждой форме в качестве аргумента конструктора. Последняя форма не имеет кнопку «Next», но вместо этого есть кнопка «Сохранить», что, конечно, сохранить данные:
public partial class Form1
{
private MyDataClass _Data;
public Form1(MyDataClass data)
{
InitializeComponent();
this._Data = data;
// TODO: initialize fields with values from this._Data
}
protected void btnNext_Click(object sender, EventArgs e)
{
// TODO: store field values to this._Data
// close this form
this.Close();
// show the next form and pass the data object along to the next form
Form2 form = new Form2(this._Data);
form.Show();
}
}
public partial class Form2
{
private MyDataClass _Data;
public Form2(MyDataClass data)
{
InitializeComponent();
this._Data = data;
// TODO: initialize fields with values from this._Data
}
protected void btnNext_Click(object sender, EventArgs e)
{
// TODO: store field values to this._Data
// close this form
this.Close();
// show the next form and pass the data object along to the next form
Form2 form = new Form2(this._Data);
form.Show();
}
}
// ...
public partial class Form12
{
private MyDataClass _Data;
public Form12(MyDataClass data)
{
InitializeComponent();
this._Data = data;
// TODO: initialize fields with values from this._Data
}
protected void btnSave_Click(object sender, EventArgs e)
{
// TODO: store field values to this._Data
// TODO: save the data stored in this._Data, since this is the last form
// close this form
this.Close();
}
}
Не будет ли новый пользователь имеет совершенно другой объект, который не имеет ничего общего с объектом предыдущего пользователя? –
Почему аккумулятор статичен? – jjxtra
Jeff/Kevin, Я предполагаю, что моя попытка - создать несколько квази-глобальных переменных, к которым можно получить доступ несколько раз. Мне придется посмотреть еще на хранение значений. –