2016-03-20 20 views
3

Die Ausgabe meines Programms ist eine Tabelle in einer Datei.OOP - Wie man abgeleitete Klassen fordert, um einen Wert zum Basisattribut zu setzen?

Einige Benutzer mögen die Ausgabe als Excel-Datei, die anderen bevorzugen CSV und so weiter.
Ich habe daher eine Abstarct-Klasse Document mit 2 abgeleiteten Klassen:
ExcelDocument und CsvDocument.

Das Trennzeichen zwischen den Ausgabeergebnissen ist in jeder Klasse anders:
In der CSV-Datei /t der Begrenzer , und in Excel ist das Trennzeichen.

Wie kann ich die abgeleiteten Klassen zwingen, Wert auf das delimiter Attribut der abstrakten Document Klasse zu setzen?

Antwort

3

eine abstrakte Eigenschaft verwenden:

public abstract char Delimiter { get; } 

Dann in der abgeleiteten Klasse:

public override char Delimiter 
{ 
    get { return '\t'; } 
} 
+0

Dank. Wo sollte die abgeleitete Klasse ihren Wert setzen? – user3165438

+0

Ich habe mit einer Beispiel abgeleiteten Klassenimplementierung aktualisiert. – TimS

+0

Vielen Dank. Eine weitere Sache: Warum benutzt du den Getter von Setter? – user3165438