天天看点

C# - 运算符重载

 1、可重载运算符

算术二元运算符       +、*、/、-、%

算术一元运算符       +、-、++、--

按位二元运算符       &、|、^、<<、>>

按位一元运算符       !、~、true、false

比较运算符               ==、!=、>=、<=、<、>

2、什么叫运算符重载

      重载:函数重载大家能够理解。

      运算符重载:指将简单的运算符的功能进行扩充,大家对于运算符的理解如+号,表示两个数字相加,但大家学习过矩阵,两个矩阵相加用的也是+号运算符,但是实际上是个复杂的运算。这个时候就可以使用运算符重载的功能,将+号的功能进行扩充。

举例:

(a11  a12   a13) + (b11  b12   b13) = (a11 + b11  a12 + b12  a13 + b13)

Matrix指的是矩阵类

Public static Matrix operator +(Matrix left , Matrix right)

{

       Int rows = left.Rows;

Int columns = lef.Columns;

Double[][] data = left.Arrays;

Matrix X = new Matrix(rows,columns);

Double[][] x = X.Array;

For (int I = 0; I < rows ; i++ )

{

       For (int j = 0 ; j < columns ; j ++)

{

       X[i][j] = data[i][j] + right[i][j];

}

}

reurn x;

}

重上例可以看出,我们将+号的功能进行了重载(扩充)。