0

(派生不可能な) 構造体をエミュレートし、機能 (イベント) を追加するためのクラスがあり
ます。まったく同じパブリック インターフェイスがありますが、ミューテーション イベント用のカスタム内部コードがいくつかあります。
上記のクラスを、クラスがエミュレートする構造体を期待する関数に渡す必要がありますが、非常に遅いため、ボックス化/ボックス化解除を避ける必要があります。

エミュレートされた構造体が私の制御下になく、インターフェイスから派生していない場合、どのように関数にクラスを受け入れるようにさせるのですか? 私のクラスには、まったく同じパブリック関数/メンバー/構文があります。


具体例:

XNAGraphicsDevice.DrawUserPrimitives関数は の配列を要求しIVertexTypeます。
関数が特に System.Array 型の入力を必要としているという理由だけで、List.ToArray() を呼び出さなければならないため、全体のコピーを作成する必要があるのは、このような無駄のように思えることがあります。リストの構文と機能は配列と同じです。関数が入力クラスを受け入れる場合、問題はありません。

4

1 に答える 1

1

IVertexTypeを実装して配列IVertexType[]を使用できないのはなぜですか?これを実装する構造体がある場合は、構造体をラップして構造体の値を返すことにより、実装を構成できます。

于 2012-09-29T19:40:14.260 に答える