Double[][] упаковка/распаковка в тип object - C#

Узнай цену своей работы

Формулировка задачи:

У меня в методе возвращается массив данных разного типа, чтобы не возникало конфликтов (данные инициализируются и присваиваются внутри метода) мне показалось достаточно простым выходом создать массив объектов на выходе, каждому объекту из которого присваиваю данные нужного мне (разного: от int до double[][]) типа. Пример не абстрагировал, вырезал "как есть" нужные для понимания строки, кому интересно, разверните:
Листинг программы
  1. /* ... */
  2. public object[] getOutp(double[][] inP)
  3. {
  4. double[][] h_inP = new double[K][];
  5. double[] o_inP = new double[K];
  6. /* вычисления и т.п., в т.ч. вызов output.get_output() */
  7. return new object[] {output.get_output()/* тип int */, h_inP, o_inP};
  8. }
  9. public void some_main_method()
  10. {
  11. object[] res1 = t1.getOutp(inP), res2 = t2.getOutp(inP);
  12. A = Convert.ToInt32(res1[0]);
  13. B = Convert.ToInt32(res2[0]);
  14. if (A == B)
  15. {
  16. k++;
  17. correct_weight(res1, res2, t1, t2);
  18. }
  19. }
  20. public void correct_weight(object[] res1, object[] res2, ArtNeuronNetwork t1, ArtNeuronNetwork t2)
  21. {
  22. t1.use_hebbs_rule(res1, res2);
  23. t2.use_hebbs_rule(res2, res1);
  24. }
  25. /* other class */
  26. public void use_hebbs_rule(object[] r1, object[] r2)
  27. {
  28. for (int i = 0; i < input.GetLength(0); i++)
  29. {
  30. input[i].hebbs_rule(r1, r2);
  31. }
  32. }
  33. /* deeper class */
  34. public void hebbs_rule(object[] r1, object[] r2)
  35. {
  36. if (neuron_type == 0)
  37. {
  38. for(int i=0;i<k;i++)
  39. { /* Вот здесь все проблемы, я имею объекты, я хочу из них получить массивы, которые я изначально туда размещал. Т.е. конвертировать написанное в исходные типы данных. Реально ли это? */
  40. weight[i] += input[i] * sgn(r1[1][s / N][s % N] * r1[2][s]) * sgn(r1[2][s] * r2[2][s]);
  41. } /* Типа Convert.ToDouble(r1[1][s / N][s % N]) etc...*/
  42. }
  43. }
  44. /* Естественно, что я сейчас не смогу скомпилировать обращение к объекту, как к массиву:
  45. Ошибка 1 Невозможно применить индексирование через [] к выражению типа "object", etc...*/
  46. /* ... */
Ну так реально ли конвертировать данные (особенно интересно о двумерных массивах) в тип object и обратно в данные нужных размерностей?

Решение задачи: «Double[][] упаковка/распаковка в тип object»

textual
Листинг программы
  1. (double[][])myobject

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.556 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы