Thaxll'ssillyia
Captain
- Registriert
- Dez. 2007
- Beiträge
- 3.568
Hallo Community!
Ich bin noch C#-Anfänger und hätte gern ein paar Fragen zu einem Projekt, das ich erarbeiten möchte.
Es geht um das Verwalten von Computern.
Diese Computer würde ich in einer Dictionary vom Typ <string (Besitzer), Computer (der Rechner)> anlegen, wobei "Computer" meine Klasse mit den Eigenschaften eines Computers ist.
Diese Klasse ist in Unterklassen gegliedert (Hardware, Software, Lizenzen).
Hier mein Code:
Nun erst mal meine Frage: Ist diese Art der Verwaltung gut? Was kann man verbessern?
Ein Problem, auf das ich gestoße bin, ist, dass ich unterschiedliche Lizenztypen habe. Jeder Typ besitzt andere Variablen. Gibt es eine Möglichkeit, beim Anlegen einer Lizenz für einen Rechner den Typ zu bestimmen und dann nur die Variabeln dieses Typs definieren/einlesen zu können?
Ich meine jetzt nicht, dass ich das mit einer Abfrage im Programm mache, sondern ich diese Aufsplittung bereits in meinen Klassen vornehmen kann.
So in etwa:
Vielen Dank für Hilfe!
Gruß Thax
Ich bin noch C#-Anfänger und hätte gern ein paar Fragen zu einem Projekt, das ich erarbeiten möchte.
Es geht um das Verwalten von Computern.
Diese Computer würde ich in einer Dictionary vom Typ <string (Besitzer), Computer (der Rechner)> anlegen, wobei "Computer" meine Klasse mit den Eigenschaften eines Computers ist.
Diese Klasse ist in Unterklassen gegliedert (Hardware, Software, Lizenzen).
Hier mein Code:
Code:
public partial class Form1 : Form // ......Formular
{
Dictionary<string, Computer> Rechner;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Rechner = new Dictionary<string, Computer>();
Computer C = new Computer();
C.Hardware.Rechnernummer = "die 1";
Rechner.Add("Ich", C);
}
}
class Computer //........die Klassen
{
Hardware hardware; // Daten des Rechners
Dictionary<string, Software> software; // Liste der installierten Software
Dictionary<string, Lizenzen> lizenzen; // Liste der verwendeten Lizenzen
public Hardware Hardware
{
get { return hardware; }
set { hardware = value; }
}
public Dictionary<string, Software> Software
{
get { return software; }
set { software = value; }
}
public Dictionary<string, Lizenzen> Lizenzen
{
get { return lizenzen; }
set { lizenzen = value; }
}
/// <summary>
/// Legt einen neuen Computer an.
/// </summary>
public Computer()
{
hardware = new Hardware();
software = new Dictionary<string,Software>();
lizenzen = new Dictionary<string, Lizenzen>(); }
}
class Hardware
{
string rechnernummer;
public string Rechnernummer
{
get { return rechnernummer; }
set { rechnernummer = value; }
}
// andere Daten
}
class Software
{
string name;
}
class Lizenzen
{
string typ; // Einzelplatz oder Nutzerlizenz
string zuSoftware; // Name der Software, wozu die Lizenz gehört
int lizenznummer; // oder vom Typ "string"
}
class Lizenztyp
{
}
Nun erst mal meine Frage: Ist diese Art der Verwaltung gut? Was kann man verbessern?
Ein Problem, auf das ich gestoße bin, ist, dass ich unterschiedliche Lizenztypen habe. Jeder Typ besitzt andere Variablen. Gibt es eine Möglichkeit, beim Anlegen einer Lizenz für einen Rechner den Typ zu bestimmen und dann nur die Variabeln dieses Typs definieren/einlesen zu können?
Ich meine jetzt nicht, dass ich das mit einer Abfrage im Programm mache, sondern ich diese Aufsplittung bereits in meinen Klassen vornehmen kann.
So in etwa:
Code:
C.Lizenzen.Typ = new Einzellizenz();
C.Lizenzen.(Zugriff auf Eigenschaft der Einzellizenz)
Vielen Dank für Hilfe!
Gruß Thax
Zuletzt bearbeitet: