Hallo,
Ich möchte ein Programm schreiben, daß Vectorgrafik enthalten soll.
Hierzu währe es günstig, wenn ich die verschiedenen Grafik-Objekte in einer Liste verwalten könnte. Meine Datenstruktur sieht etwa so aus:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
| public class CGraficObjekt { protected int Objektart; protected Point p1, p2, p3, p4; protected int breite, hoehe; protected Pen linien = new Pen(Color.DarkGray); protected SolidBrush fuellungFarbe = new SolidBrush(Color.Red); protected long anfanszeit; protected int legende; } public class CLinie : CGraficObjekt { public int pfeil1, pfeil2; } public class CFlaesche : CGraficObjekt { public Point TextEinfügepunkt; public enum EFlArt : byte { Rechteck = 0, Kreis, Dreieck , Elypse }; public Font schrift = new Font("Arial", 9); } public class CText : CGraficObjekt { public int pfeil1, pfeil2; public Font schrift = new Font("Arial", 9); } public class CBild : CGraficObjekt { public Image bild; } public class CPolylinie : CGraficObjekt { public Point [] punkte = new Point [99]; } |
Also eine Basis-Classe und dann verschiedene Grafikobjekte, die von der Basis-Classe abgeleitet sind.
Frage: geht das, das man die in einer Liste verwalten kann.
Ich dachte mir so, aber das gibt eine Fehlermeldung
C#-Quelltext
1:
| public static System.Collections.Generic.List<CLinie, CBild, CFlaesche, CPolylinie, CText> objektliste = new System.Collections.Generic.List<CLinie, CBild, CFlaesche, CPolylinie, CText>(); |
So das man beim einlesen das Feld Objektart ausliest, und dann mit der passenden Objekt-Classe weiter ausliest (Entschuldigung für das 3x lesen/liest)
Währe auch dankbar für einen Tipp, wenn ich hier einen völlig falschen "Ansatz" habe.
bis dann
Foxi23