Лучше хранить вашу информацию в классе одного из родителей или в центральном статическом классе
Вопрос
Мне интересно, какой способ хранить информацию? Центральный статический класс или в родительском классе?
Код для того, как я его сейчас храню. Я инчиняю новый класс каждый раз.
Родительский класс:
public partial class frmEmployeeManager: Form
{
List<Employee> lstEmployees = List<Employee>();
public frmEmployeeManager()
{
InitializeComponent();
}
public void updatePay(float Pay, int ID)
{
//Where ID = ID change the Pay
//(Omitted the foreach loop here for brevity)
}
private void btnDisplayData_Click(object sender, EventArgs e)
{
frmUpdatePay dlgUpdatePay = new frmUpdatePay(this);
dlgUpdatePay.ShowDialog();
}
}
Детский класс:
public partial class frmUpdatePay : Form
{
private frmEmployeeManager ParentEmployeeManager;
public frmUpdatePay(frmEmployeeManager EmployeeManager)
{
InitializeComponent();
ParentEmployeeManager = EmployeeManager;
}
AddPersonParent.updatePay(fltPayInput, intID);
}
Решение
Получив удар в темноте (так как я не знаю точно, чего вы пытаетесь достичь), я бы сделал экземплярный класс и использовал бы один шаблон.
Другие советы
Лично я бы (и сделал) использовать центральный статический класс. Оба выбора нарушают принципы ОО, но, по крайней мере, подход центрального статического класса не разоблачает внутреннюю работу моих форм снаружи.
Я попал в беду раньше, когда я использовал статический список, который держал «состояние» вещей, и я обнаружил, что добавляю статические функции, чтобы «очистить» или «обновить» список и т. Д. Поэтому я научился использовать только статические классы или списки или переменные для вещей, которые, ну, в общем, не изменяются.
Если вы держите объекты в списке, которые могут измениться, я бы пошел по созданию маршрута.
Обновлено
Теперь, когда я вижу, что ваш список является списком сотрудников, преобразование его в статику, в основном, делает его глобальной переменной. Глобальные переменные не хороши. Я нашел этот ответ, который Подводит и суммирует это довольно хорошо.