Entwickler-Ecke
C# - Die Sprache - Umsetzung initialisierte Struktur von Delphi nach C#
hanspeter - Sa 14.10.06 11:10
Titel: Umsetzung initialisierte Struktur von Delphi nach C#
Hallo,
ich stelle gerade ein Projekt von Delphi nach C# um und bin wohl noch ein bischen in der Delphi-Syntax verfangen.
Ich habe globale Tabellen mit Initialisierungsdaten bisher als Array[1..n] of record global vereinbart.
Gut das muß jetzt in eine Klasse. Als static ja kein Problem.
Wie aber kann ich ein Array von Structuren zur Compilerzeit initialisieren?
Hier ein Codebeispiel aus Delphi.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| type TPruefungsArt = record Art : string; ID : Integer; T : Array [1..5] of String; V : boolean; A : boolean; N : boolean; F : boolean; Z : boolean; end;
const PrfgAnz = 27; Pruefungsart : Array[1..PrfgAnz] of TPruefungsart = (Art: 'Mannschaftsspr. mit/ohne Stechen'; ID: ceMannschaftspr; T:('Fehler','Zeit','','',''); V:true; A: true; N: false; F: true; Z: true), (Art: 'Mannschaftsspr. 2 Uml. Stechen'; ID: ceMannschaft2US; T:('Fehler','Zeit','','',''); V:true; A: true; N: false; F: true; Z: true), ... |
Für einen Tip dankbar.
Gruß Peter
Moderiert von Christian S.: Delphi-Tags hinzugefügt
Christian S. - Sa 14.10.06 11:44
Hallo!
Würde ich so machen:
C#-Quelltext
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:
| class Program { private static readonly Prüfungsart[] prüfungsart = { new Prüfungsart("Mannschaftsspr. mit/ohne Stechen", 1), new Prüfungsart("Mannschaftsspr. 2 Uml. Stechen", 2)};
static void Main(string[] args) { foreach (Prüfungsart p in prüfungsart) Console.WriteLine(p.Art);
Console.ReadLine(); } }
public struct Prüfungsart { private string art;
public string Art { get { return art; } }
private int id;
public int Id { get { return id; } }
public Prüfungsart(string Art, int Id) { art = Art; id = Id; } } |
Fehlen natürlich noch ein paar Properties. Ich bin mir nicht sicher, ob C# diese Inline-Initialisierung wie Delphi kennt, aber gesehen habe ich sie noch nicht.
Grüße
Christian
hanspeter - Sa 14.10.06 22:02
Christian S. hat folgendes geschrieben: |
Fehlen natürlich noch ein paar Properties. Ich bin mir nicht sicher, ob C# diese Inline-Initialisierung wie Delphi kennt, aber gesehen habe ich sie noch nicht.
Grüße
Christian |
Ja so habe ich es jetzt programmiert. Da erfolgt aber die Initialisierung zur Laufzeit.
Aber danke Du hast mich auf den Kern der Frage gebracht.
Also was ich eigentlich wissen will:
Kann man in C# zur Entwurfszeit Felder und Felder von Strukturen Inline initialisieren?
Gruß Peter
Kha - So 15.10.06 12:41
Wie stellst du dir das vor ;) ? Wenn die Structure auch nur halbwegs den OOP-Regeln entspricht, hast du keinen Zugriff auf die Felder. Und Properties lassen sich zur Compiletime eher schlecht ansprechen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!