Ist es besser, Ihre Informationen in einer einzigen Elternklasse oder einer zentralen statischen Klasse zu speichern
Frage
Ich frage mich, was ein besserer Weg ist, um Informationen zu speichern? Eine zentrale statische Klasse oder in einer übergeordneten Klasse?
Der Code für die Art und Weise, wie ich ihn jetzt speichere. Ich stelle jedes Mal eine neue Klasse ein.
Elternklasse:
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();
}
}
Kinderklasse:
public partial class frmUpdatePay : Form
{
private frmEmployeeManager ParentEmployeeManager;
public frmUpdatePay(frmEmployeeManager EmployeeManager)
{
InitializeComponent();
ParentEmployeeManager = EmployeeManager;
}
AddPersonParent.updatePay(fltPayInput, intID);
}
Lösung
Wenn ich einen Stich im Dunkeln mache (da ich nicht genau weiß, was Sie erreichen wollen), würde ich eine sofortige Klasse erstellen und ein Singleton -Muster verwenden.
Andere Tipps
Persönlich würde (und tun) ich eine zentrale statische Klasse verwenden. Beide Auswahlmöglichkeiten brechen die OO -Prinzipien, aber zumindest der Central Static Class -Ansatz enthüllen das Innenleben meiner Formen nicht nach außen.
Ich habe mich schon einmal in Schwierigkeiten geraten, als ich eine statische Liste verwendet habe, die den "Zustand" der Dinge enthielt, und ich fügte fest oder Listen oder Variablen für Dinge, die statisch sind-nicht kürzer.
Wenn Sie Objekte in der Liste aufbewahren, die sich ändern können, würde ich die sofortige Route gehen.
Aktualisiert
Jetzt, da ich Ihre Liste sehe, ist es eine Mitarbeiterliste, sie in eine statische Umwandlung zu einer globalen Variablen zu konvertieren. Globale Variablen sind nicht gut. Ich fand diese Antwort welche fasst es ziemlich gut zusammen.