Hallo
Ich habe eine Konfigurationsdatei die ich digital abbilden und von der ich mehrere Objekte erstellen möchte.
Die Konfigurationsdatei ist immer folgendermassen aufgebaut:
[Überschrift1]
Variable1 = beliebigerWert
Variable2 = beliebigerWert
[Überschrift2]
Variable3 = beliebigerWert
Variable4 = beliebigerWert
jetzt würde ich folgendermassen vorgehen.
namespace WindowsApplication1
{
static class Program
{
static void Main()
{
Variablen neu = new Variablen();
Variablen alt = new Variablen();
neu.Ueberschrift1.Variable1 = 42;
neu.Ueberschrift2.Variable2 = 11;
alt.Ueberschrift1.Variable1 = 24;
alt.Ueberschrift2.Variable2 = 11;
}
public class Variablen
{
Ueberschift1 mUeberschrift1 = new Ueberschrift1();
Ueberschift1 mUeberschrift2 = new Ueberschrift2();
public class Ueberschrift1
{
public int Variable1;
public int Variable2;
}
public class Ueberschrift2
{
public int Variable3;
public int Variable4;
}
}
}
}
edit: Ich suche eine elegantere Möglichkeit als die von mir verwendete.
Wie durch die folgenden Antworten klar wird, ist die entscheidende Verbesserung für so ein Standardproblem, die bestehenden, vorgesehenen Klassen zu verwenden und das Rad nicht neu zu erfinden.
Ich suche eine elegantere Möglichkeit als die von mir verwendete.
[Tutorial] Konfigurationsmodell im .NET Framework oder XML-Serialisierung.
Christian
Weeks of programming can save you hours of planning
Ich habe das Gefühl, dass du dir erst mal ein Buch über OOP durchlesen solltest. Dazu dann noch, dass Felder nach Möglichkeit niemals public sein sollten und was es mit Strukturen auf sich hat.
Vielen Dank für eure Antworten.
Dass meine Lösung nicht elegant ist habe ich vermutet. Könntet ihr konkretisieren was ihr für falsch haltet.
Generell ist mein Gedanke:
Warum willst du denn das Rad neu erfinden? Was üblicherweise für solche Zwecke eingesetzt wird, hab ich bereits geschrieben. Wenn dir das nicht gefällt, solltest du doch irgendwelche Gründe dafür (bzw. dagegen) haben...
Christian
Weeks of programming can save you hours of planning
@abug
Was du dir da zusammen zimmerst nennt sich ini Datei bzw. willst du dafür einen eigenen Parser schreiben.
Dein Konstrukt ist nun sehr unschön und vom Aufbau her auch undurchdacht.
Solange es keinen Grund für solch eine Struktur gibt kann ich ebenfalls nur das Config System von .Net empfehlen.
Falls du von der Idee nicht abweichen willst solltest du dich erst einmal mit einem Grundlagen vertraut machen.
Dies steht auch in den Foren Regeln.
Ein Anfang wäre ein doppelt verschachteltes Dictionary.
Also sowas wie Dictionary<string, Dicationary<string, string>>
Dies solltest du der Lesbarkeit halber aber in eine ordentliche Struktur packen.
Ein entsprechender Parser ist in wenigen Minuten selbst gebaut.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Hallo,
Was du dir da zusammen zimmerst nennt sich ini Datei
genau. Und das ist wie schon gesagt ein veraltetes Format.
Wenn Du dennoch daran gebunden bist, gibt es Klassen zuhauf im Internet, z.B. bei Codeproject, oder auch hier im Forum:
Ini-Datei-Klasse
IniReader
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Vielen Dank für eure Antworten.
Dass ich das nicht zu Fuss machen muss ist mir bewusst. Mein Problem ist dass mein Professor mir immer vorgeworfen hat dass ich unsauber programmiere. Jetzt bin ich im Job und muss code abliefern auf den andere zurückgreifen. Mir geht es vor allem darum meine Art zu coden zu verbessern.
Dann liest mal [FAQ] Wie finde ich den Einstieg in C#? durch, arbeitest nen gescheites C# Buch durch (natürlich für Deine spätere Arbeit passend. Macht ja kein Sinn ASP.NET zu lernen wenn Du später WPF machst) und lenrst, wie man objektorientiert entwickelt und programmiert (nicht coden, das machen PHPler).
Aber wir drehen uns hier im Kreis, wenn Dir einfach die Grundlagen nicht flüssig von der Hand gehen.
Und irgendwie trifft das hier [Hinweis] Wie poste ich richtig? Punkt 1.1.1
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code