>>85
>宣言順に返ってくる保証は無いよ
本番では使って無くてよかったw


後の継承設計を考えると、staticなVertexDeclarationを
渡す、IVertexDeclarationProvider{ GetDeclaration(); }じゃないかな。

たぶん、みんなこういうことしてるのではないかなぁ
DrawableObj<T> where T: struct , IVertexDeclarationProvider
{
  Draw() //毎フレーム
  {
    gd.VertexFormat(T.GetDeclaration());
    vb.SetData(T_array);
  }
}
class HogeEffectedObj : DrawableObj<HogeVertexA>
リフレクション使うとしたら、ゲーム開始やLoading中に、
プロジェクト中のstaticな要素をパラメータ付けて初期化するとか(破棄&GCするとか)

ゲームのメインループ外に処理にできないと設計の意味が無い。