2009-07-19 19 views
1

我注意到可以定義一個自定義的類,然後在其中的一些運算符上使用+, - ,/和*,而不是使用方法來實現。例如,我創建了一個矩陣的類,它複雜的矩陣代數/分化,創造它,這樣所有的操作都通過以下方法來控制:如何在數學對象等表達式中使用自定義類?

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 Page後,並使用XNA框架後(Position = Speed * (float)gameTime.ElapsedTime.TotalSeconds;其中一個Vector2對象正在使用*乘以float),您可以使用+, - ,/和*代替。

那麼,我將如何改變我的課,所以我可以簡單地鍵入下面的代碼來做同樣的上述?

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

在此先感謝。

回答

10

MSDN:Operator overloading

public static Matrix operator +(Matrix mat) 
{ 
    //do stuff 
} 
+0

謝謝,我不知道它叫什麼! – 2009-07-19 13:33:10

2

聽起來像是你需要看看Operator Overloading.另見this tutorial。玩得開心:)

+0

不錯的教程,謝謝。由於某種原因,每個人似乎都在使用矩陣...... – 2009-07-19 13:40:43

相關問題