C # estructura abstracta

¿Cómo puedo lograr la herencia (o similar) con estructuras en C #? Sé que una estructura abstracta no es posible, pero necesito lograr algo similar.

Lo necesito como una estructura porque tiene que ser un tipo de valor. Y necesito herencia porque necesito una matriz genérica y los métodos que puedo garantizar están allí.

Creo que un ejemplo será muy útil, así que aquí hay un código que no se compilará, pero muestra lo que quiero lograr;

    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);
   }
}

EDITAR

La razón por la que necesito tipos de valores es para poder hacer una matriz de ellos y pasarlos a OpenGL como un búfer de vértices. Para esto, los datos deben estar contenidos directamente en esta matriz.

Me sorprendería si esto simplemente no fuera posible lograrlo.

Respuestas a la pregunta(9)

Su respuesta a la pregunta