Halten meine Liste/dictionary als Global zugänglich

Ok... ich versuche zu verstehen, dieses ganze Objekt orientierte Programmierung, aber ich halte Sie landen in einer Sackgasse. 😉

Ich versuche zu speichern oder vielmehr speichert eine große Menge Daten mit Verwendung von Klassen, als ich sollte. Ich möchte zum speichern von planetaren Daten durch die Verwendung einer Klasse mit mehreren Eigenschaften, werde ich dann speichern Sie diese in einer Liste an.

Mein problem ist, dass ich nicht weiß, wie man diese Liste weltweit zugänglich, es ist nur zugänglich in dem Fall, wo es erstellt wird.

Einige Beispiel-code von meinem test-Umgebung unter.

OrbitalBodies.cs

class OrbitalBodies
{
    public int BodyID { get; set; }
    public string BodyName { get; set; }
    public int BodySize { get; set; }
    public int BodyX { get; set; }
    public int BodyY { get; set; }   
}

From1.cs

public void button1_Click(object sender, EventArgs e)
{
    var bodies0 = new OrbitalBodies();
    var orbitalList = new List<OrbitalBodies>();

    bodies0.BodyID = 4;
    bodies0.BodyName = "Earth";
    bodies0.BodySize = 125;
    bodies0.BodyX = -450;
    bodies0.BodyY = 75;

    orbitalList.Add(bodies0);

    bodies0.BodyID = 0;
    bodies0.BodyName = "Sol";
    bodies0.BodySize = 500;
    bodies0.BodyX = 0;
    bodies0.BodyY = 0;

    orbitalList.Add(bodies0);



    //var orbitalDic = new Dictionary<int, OrbitalBodies>();


    MessageBox.Show("Planetary body name: " + Convert.ToString(orbitalList.Count()));
}

Habe ich verbrachte ein paar Stunden auf der Suche, mein problem hier und an anderen Orten, aber ich weiß nicht, wie ich auf die Informationen zugreifen können, den ich in der Liste andere als in diesem einzelnen Fall. Meine Reale Anwendung haben Zehntausende von orbitalen Einrichtungen und viele andere Daten, die zugänglich sein müssen in vielen Formen und vielleicht sogar weitere Klassen.

Etwas Hilfe würde geschätzt werden, was ist die beste Lösung? Tun Sie es ganz anders?!?

Wahrscheinlich haben Sie nicht wollen es werden Globale, von einer Anwendung aus design-Perspektive. Während es scheint einfacher, auf den ersten, versuchen zu bestimmen, was es der richtige Rahmen ist, und sicherstellen, es bezieht sich auf dieser Ebene, ist diese Programmierung Methodik stellt Ihre gesamte Anwendung in einen Haufen spaghetti-code, wird wirklich hart, mit zu arbeiten, Sie verstehen und pflegen im Laufe der Zeit. Beachten Sie auch, dass Sie brauchen, um deal mit der thread-Sicherheit Probleme, wenn Sie setzen diese Informationen Global, und die kann eine echte Schmerzen.
seine nicht ganz richtig. Viele Dinge, meistens in der Spiele-Entwicklung, verwendet, um statische Daten zu speichern-Spiel (Welt) oder andere Dinge, die ändern sich nicht während laufen, oder benötigt werden, zugänglich von überall und jederzeit.
Ich war nicht sagen, Sie sollten nicht immer alles Global zugänglich, war ich einfach sagen, dass in diesem Zusammenhang, es scheint nicht zweckmäßig, da das, was er tut, und dass es selten ist, dass man in einer situation, wo es angemessen ist. Wenn das nicht klar ist, entschuldige ich mich.
Perry: Keine Entschuldigung dafür, dass es eine Globale variable. Dependency injection ist die Zukunft dude.
Nun, dies ist der Beginn einer Art von Spiel. Ein Spiel, das behandeln ganz Zut Daten. Nicht das übliche mainstream-shooter-Art...;) ich muss ziemlich viel Daten zugänglich sein, die ganze Zeit, das Lesen aus einer Datenbank wird nur dann zukunftsfähig sein, beim speichern und laden. Mehr oder weniger...

InformationsquelleAutor user2411504 | 2013-05-23

Schreibe einen Kommentar