複数の座標系で計算を行い、それらの間で変換を行う C# プログラムを作成しています。混乱を防ぐために、座標の種類ごとに個別の静的な値型を使用したいと思います。例えば:
struct FooSpaceCoords {
double x, y, z;
}
struct BarSpaceCoords {
double x, y, z;
}
便利でタイプ セーフなマトリックス クラスがあれば便利です。ただし、次の場合は機能しません。
public class MatrixTransform<To, From> where To : struct, From : struct
{
.... some implementation that requires .x, .y and .z ....
}
これは、コンパイラがそれを認識できず、メンバー&To
を持つため失敗します。 From
.x
.y
.z
インターフェイスを定義することはできますIHaveXYZ
が、その結果、計画全体の精神に反する多くのボックス化操作が発生するように思われます (それが重要な場合は効率が低下します)。
私がもともと望んでいたことを簡単に行う方法はありますか?