1

カスタムクラスを定義してから、メソッドを使用するのではなく、それらの多くで+、-、/、*などの演算子を使用できることに気付きました。たとえば、複雑な行列代数/微分を行うMatrixクラスを作成し、すべての操作がメソッドによって制御されるように作成しました。

Matrix m1 = new Matrix(new double[][] { /* Some data */ });
Matrix m2 = new Matrix(new double[][] { /* Some other data */ });

// Returns a new Matrix object equal to the result
m1 = m1.Multiply(m2);
m1 = m1.Add(m2.Inverse);
m1 = m1.Subtract(m2.Determinant);
m1 = m1.ApplyToCombinator(new AlgebraMatrix(new string[][] { /* Some data *. }));

ただし、このCodeProjectページを確認し、XNAフレームワーク(オブジェクトにusingを掛けるPosition = Speed * (float)gameTime.ElapsedTime.TotalSeconds;)を使用した後は、代わりに+、-、/、および*を使用できます。Vector2float*

では、次のコードを入力するだけで上記と同じようにできるように、クラスをどのように変更する必要がありますか?

m1 = m1 * m2 + m2.Inverse - m2.Determinant;

前もって感謝します。

4

2 に答える 2

10

MSDN:演算子のオーバーロード

public static Matrix operator +(Matrix mat)
{
    //do stuff  
}
于 2009-07-19T13:32:15.113 に答える
2

演算子のオーバーロードを確認する必要があるようです。このチュートリアルも参照してください。楽しむ :)

于 2009-07-19T13:35:44.453 に答える