Entwickler-Ecke

C# - Die Sprache - Wie übersetze ich ein Delphi Type ... nach C# ???


Hajoseb - Fr 15.06.07 01:08
Titel: Wie übersetze ich ein Delphi Type ... nach C# ???
Ich nochmal.

Entweder ist es zu spät oder ich bin Blind, aber ich habe noch immer nicht verstanden, bzw. beim suchen im C#-Buch oder über google herausgefunden, wie ich folgendes Delphi:

Delphi-Quelltext
1:
2:
3:
type TBuffer = Array[0..127of Byte;
...
var MeinBuffer : TBuffer;

nach C# bekomme.

Ich möchte halt einen eigenen Datentyp haben um dann später so etwas wie

C#-Quelltext
1:
2:
3:
// Das definieren von TBuffer fehlt mir an dieser Stelle
...
private TBuffer MeinBuffer;

zu haben. (In Delphi war das ja ganz Alltäglich)

Wie löse ich das in C# ???

Mfg Hajoseb

P.S. Wenn die Frage zu dämlich ist, muss ich eben noch mal eine Nacht darüber schlafen ...


Hajoseb - Fr 15.06.07 01:43

Habe mal weiter gesucht, aber noch ohne Erfolg.

struct passt eigentlich nicht.

C#-Quelltext
1:
2:
3:
4:
5:
6:
    private struct TBuffer
    {
      byte[] Buffer;
      }
...
    private TBuffer MeinBuffer;

denn dann müsste ich die Variable ja mit "." ansprechen

C#-Quelltext
1:
MeinBuffer.Buffer = ...                    

Damit ihr seht, ich habe es wirklich versucht zu lösen :oops:

Mfg Hajoseb


Christian S. - Fr 15.06.07 09:55

Hallo!

Meines Wissens geht das in C# nicht. Allerdings braucht man das in C# auch nicht (im Gegensatz zu Delphi, wo man das ja braucht, um Arrays als Parameter übergeben zu können). Es würde zwar ein paar Dinge übersichtlicher machen, aber die Möglichkeiten schränkt es nicht ein.

Du kannst also einfach ein Array fester Größe übergeben und das war es.

Grüße
Christian


UGrohne - Fr 15.06.07 10:10

Genau, Du brauchst es in C# nicht, weil Du dort keine Deklarationen à la array of string hast, sondern einfach string[].

Aber wenn Du so etwas wirklich machen willst, wäre Folgendes vielleicht eine Möglichkeit:

C#-Quelltext
1:
2:
3:
4:
5:
    public struct Buffer
    {
        private byte[] buffer;
        public byte this[int index] { get { return buffer[index]; } set { buffer[index] = value; } }
    }

Dieses struct kannst Du fast genauso wie Deinen Typ verwenden. Habs aber nicht ausprobiert ;)


Christian S. - Fr 15.06.07 10:13

Man sollte vielleicht dem buffer noch eine Größe geben ;)


Hajoseb - Fr 15.06.07 10:49

Danke. :D

Es braucht halt einige Zeit, alle Syntax-Änderungen bez. der Eigenschaften einer Sprache geistig umzusetzen.

Na, Ja. Wir sagen ja auch nicht "Es regnet Katzen und Hunde" :lol:

Mfg Hajoseb