C# struct abstract

Wie kann ich erreichen, Vererbung (oder ähnlich) mit structs in C#?
Ich weiß, dass eine abstrakte Struktur nicht möglich ist, aber ich brauche etwas erreichen ähnlich.

Ich brauche es als eine Struktur, weil es einen Wert geben. Und ich brauche Vererbung, denn ich brauche einen generischen array und Methoden, die ich kann garantieren, gibt es.

Ich denke, ein Beispiel wird einen langen Weg gehen, hier sind einige code, der nicht kompiliert wird, aber zeigt, was ich erreichen will;

    abstract struct Vertex
    {
       abstract int SizeInBytes;
       abstract void SetPointers();
    }
    struct ColorVertex : Vertex
    {
       Vector3 Position;
       Vector4 Color;

       override int SizeInBytes //static
       {
          get { return (3 + 4) * 4; }
       }
       override void SetVertexPointers() //static
       {
           ...
       }
    }

class main
{
   static void main()
   {
      Vertex[] verts = new Vertex[3];
      for(int i = 0; i < 3; i++)
          verts[i] = new ColorVertex();

      verts[0].SetVertexPointers(); //should call ColorVertex.SetVertexPointers

      externalAPIcall(verts);
   }
}

EDIT:

Den Grund brauche ich Wert-Typen ist so, dass ich ein array von Ihnen, und übergeben es an OpenGL als vertex-buffer. Für die Daten, die benötigt werden, direkt enthalten, in das array.

Ich würde sein überrascht, wenn diese waren einfach nicht möglich, zu erreichen.

InformationsquelleAutor Hannesh | 2011-02-15
Schreibe einen Kommentar