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

但是,在查看This CodeProject PagePosition = Speed * (float)gameTime.ElapsedTime.TotalSeconds;并使用XNA 框架(Vector2对象乘以floatusing *)之后,您可以改用 +、-、/ 和 *。

那么我将如何更改我的课程,以便我可以简单地键入以下代码来执行与上面相同的操作?

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 回答