2013-11-24 3 views
0

Я работаю с C#, и я пытаюсь умножить скаляр на матрицу и вернуть результаты. Проблема, которую я имею, - это аргументы, которые можно передать двумя способами. Они могут либо прийти в скаляр, то матрица, либо матрица, то скаляр, поэтому мне нужно настроить два метода для их обработки. Я знаю, что я могу просто дублировать код во втором методе, но, как я понимаю, вызов метода является способом slicker для этого, поскольку оба метода используют один и тот же код. Мне просто нужна помощь в том, как будет выглядеть этот звонок. Мой код показан ниже.вызов метода внутри другого метода в том же классе

public static Matrix operator*(int scalar, Matrix matrix) 
{  
    uint row,col; 
    Matrix matrixProd; 

    matrixProd = new Matrix(matrix.Rows,matrix.Cols); 
    for (row=1; row<=matrixProd.Rows; row++) 
     for (col=1; col<=matrixProd.Cols; col++) 
      matrixProd.TwoDArray[row,col] = matrix.TwoDArray[row,col] * scalar; 
    return matrixProd; 
} 

public static Matrix operator*(Matrix matrix, int scalar) 
{ 
    //I have no idea on what to put here to call the previous method.// 
} 
+1

вы пробовали обратный скаляр * матрица; ? – Enam

+0

У меня не было. Это отлично работает. Благодаря! – user3029516

ответ

2

Вы можете просто изменить порядок операндов, как это:

public static Matrix operator*(Matrix matrix, int scalar) 
{ 
    return scalar * matrix; 
} 
+0

Это отлично работает. Благодаря! – user3029516

Смежные вопросы