AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

"Array of record" in C#?

Ein Thema von MathiasSimmack · begonnen am 24. Feb 2005 · letzter Beitrag vom 25. Feb 2005
Antwort Antwort
MathiasSimmack
(Gast)

n/a Beiträge
 
#1

"Array of record" in C#?

  Alt 24. Feb 2005, 17:20
Ich habe schon graue Haare vom Suchen im .NET-Framework SDK. Wie kann denn so eine Konstruktion
Delphi-Quellcode:
type
  TEinType = record
    Name : string;
    SequenceNumber : integer;
  end;

const
  TTypenArray = array[1..2]of TEinType = (
     (Name:"Ein Name"; SequenceNumber:100),
     (Name:"Noch ein Name"; SequenceNumber:200)
  );
in C# machen? Ich hätte da ein paar Bezeichner und Sequenznummern (mehr als 2), die ich gern vorher initialisieren und dann zur Laufzeit bloß entsprechend der Reihe nach aufrufen würde.
  Mit Zitat antworten Zitat
LarsMiddendorf

Registriert seit: 4. Sep 2003
Ort: Hemer
104 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: "Array of record" in C#?

  Alt 24. Feb 2005, 18:25
Erstmal einen Konstruktor für TEinType:
Code:
struct TEinType
{
  public string Name;
  public int SequenceNumber;
 
  public TEinType(string Name,int SequenceNumber)
  {
    this.Name=Name;
    this.SequenceNumber=SequenceNumber;
  }
}

class ...
{

  TEinType[] TTypenArray = new TEinType[]{new TEinType("Ein Name",100), new TEinType("Noch ein Name",200)};
}
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#3

Re: "Array of record" in C#?

  Alt 24. Feb 2005, 18:30
Dein Type in c#:
Code:
   public class EineKlasse
   {
      static int fortlaufendeNummer;

      static EineKlasse()
      {
         fortlaufendeNummer = 0;
      }

      int sequenceNumber;

      public int SequenceNumber
      {
         get { return sequenceNumber; }
      }

      public EineKlasse()
      {
         sequenceNumber = fortlaufendeNummer++;
      }
   }
Jetzt gehst du auf File\New\New File\typed HashTable

Der Hashtable verpasst du noch das hier (aus purer Faulheit )
Code:
        public void Add(string key)
        {
            innerHash.Add(key, new EineKlasse());
        }
Und dann kannst du es so benutzen:
Code:
   internal class MainClass
   {
      public static void Main(string[] args)
      {
         EineKlasseHashTable table = new EineKlasseHashTable();
         table.Add("eins");
         table.Add("zwei");
         table.Add("drei");
         table.Add("vier");

         Console.WriteLine(table["eins"].SequenceNumber);
         Console.WriteLine(table["zwei"].SequenceNumber);
         Console.WriteLine(table["drei"].SequenceNumber);
         Console.WriteLine(table["vier"].SequenceNumber);
      }
   }
Aber ich hoffe, dass du da keine Konstanten reinpackst!
Konstanten gehören in enums und nirgenswo anders hin!
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#4

Re: "Array of record" in C#?

  Alt 24. Feb 2005, 18:55
Nein, das wird die Grundlage für eine separate Klasse für meine Anzeige im PropertyGrid. Ich muss die Sequenznummern allerdings fest vorgeben und nicht der Reihe nach hochzählen, weil diese anderweitig schon so festgelegt sind. Und da geht es eben nicht 1, 2, 3, 4, ... sondern es kann durchaus 100, 200, 500, 600, 800, ... sein.

Wie gesagt, in Delphi hätte ich den Typ deklariert und dann alle Namen und Nummern in ein Array dieses Typs eingetragen. Wenn ich was ändern oder erweitern muss, dann kann ich´s an einem zentralen Ort machen und muss mich nicht im Programmcode damit befassen.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#5

Re: "Array of record" in C#?

  Alt 24. Feb 2005, 19:54
Ich hab´s mir anders überlegt. Vorrecht des Programmierers. Ich haue das ganze Zeug in eine XML-Datei, die ich dann einfach auslese. Dann kann ich gleich die benötigten Klassen für den Tree-View und das PropertyGrid erzeugen und spare mir das Hantieren mit dieser Hilfsklasse.

@Robert: Das wird einer von den etwas schwierigeren Editoren.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#6

Re: "Array of record" in C#?

  Alt 24. Feb 2005, 21:52
Ich kapriere auch gar nicht wo du die statischen Zahlen hernimmst?
Zum Thema XML: Schaue dir mal den XmlSerializer an. Prima Sache, da du mit 1-2 Zeilen eine XmlDatei in eine Instanz oder sogar eine ganze Collection bekommst.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#7

Re: "Array of record" in C#?

  Alt 25. Feb 2005, 09:05
Zitat von Robert_G:
Ich kapriere auch gar nicht wo du die statischen Zahlen hernimmst?
Microsoft Platform SDK -> Setup -> Windows Installer -> Installer Database -> Using a Sequence Table -> Suggested whatever. In einem Skript interessieren mich diese Standardaktionen nur, weil ich sie brauche, um eigene Aktionen passend einzuklinken:
Code:
<Custom Action="MeineFehlerMeldung" After="AppSearch"/>
In einem Editor muss ich schätzungsweise einen Knotenpunkt anbieten (Tree-View), damit der geneigte Anwender seine Aktion schön bequem dort einfügen kann. *händezumhimmelstreck* Seid verflucht, RAD und WYSIWYG!

Wenn ich allerdings so darüber nachdenke ... ... Also ich brauche eigentlich keinen Editor. Ich komme auch mit dem Skript klar.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz