Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Простой вопрос


Автор: Yurik 6.11.2005, 20:03
Вопрос - простой как три руБля smile
Но я уже задолбался искать ответ smile

Надо передать в функцию 3 матрицы. Собственно, как это сделать?

Код

void unmMM(double A[7,7],double B[7,7],double C[7,7])
{
// здесь идет перемножение матриц A*B и запись результата в матрицу C
}


Добавлено @ 20:04
вышеприведенный код внаглую отказывается работать smile

Автор: Void 6.11.2005, 20:15
Код

void unmMM(double[,] A, double[,] B, out double[,] C) { }

Автор: Yurik 6.11.2005, 22:35
Пасиба!

Т.е. в эту функцию можно передавать матрицы любого размера?
Кстати, каким образом это делается?

Автор: Void 6.11.2005, 22:50
Цитата(Yurik @ 7.11.2005, 00:35)
Т.е. в эту функцию можно передавать матрицы любого размера?

Да.
Цитата(Yurik @ 7.11.2005, 00:35)
Кстати, каким образом это делается?

То есть? Массивы в C# динамические. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vclrfarrayspg.asp

Автор: Yurik 6.11.2005, 23:02
Код

void unmMM(double[,] A, double[,] B, out double[,] C) { }


При использовании out вылази сразу 2 ошибки:
1) The out parameter 'C' must be assigned to before control leaves the current method
2) Use of unassigned local variable 'C'

При юзании ref все нормально.




Добавлено @ 23:06
Но я хочу out.....

Автор: bend0r 6.11.2005, 23:42
надо присвоить обезательно что нибуть массиву C.
Код

void unmMM(double[,] A, double[,] B, out double[,] C) 
{ 
        C = A; //для примера.  такое будет работать.
}

Автор: -ser- 7.11.2005, 08:58
Цитата
Надо передать в функцию 3 матрицы.

используя out нельзя что-то передать в метод, а можно только взять из него, предварительно этому что-то присвоив. чем не устраивает ref.

Автор: Void 7.11.2005, 09:40
В данном случае вообще лучше всего не пользоваться out/ref, а просто вернуть матрицу, благо в .NET это недорогая операция.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)