Double[][] упаковка/распаковка в тип object - C#
Формулировка задачи:
У меня в методе возвращается массив данных разного типа, чтобы не возникало конфликтов (данные инициализируются и присваиваются внутри метода) мне показалось достаточно простым выходом создать массив объектов на выходе, каждому объекту из которого присваиваю данные нужного мне (разного: от int до double[][]) типа.
Пример не абстрагировал, вырезал "как есть" нужные для понимания строки, кому интересно, разверните:
Ну так реально ли конвертировать данные (особенно интересно о двумерных массивах) в тип object и обратно в данные нужных размерностей?
/* ... */ public object[] getOutp(double[][] inP) { double[][] h_inP = new double[K][]; double[] o_inP = new double[K]; /* вычисления и т.п., в т.ч. вызов output.get_output() */ return new object[] {output.get_output()/* тип int */, h_inP, o_inP}; } public void some_main_method() { object[] res1 = t1.getOutp(inP), res2 = t2.getOutp(inP); A = Convert.ToInt32(res1[0]); B = Convert.ToInt32(res2[0]); if (A == B) { k++; correct_weight(res1, res2, t1, t2); } } public void correct_weight(object[] res1, object[] res2, ArtNeuronNetwork t1, ArtNeuronNetwork t2) { t1.use_hebbs_rule(res1, res2); t2.use_hebbs_rule(res2, res1); } /* other class */ public void use_hebbs_rule(object[] r1, object[] r2) { for (int i = 0; i < input.GetLength(0); i++) { input[i].hebbs_rule(r1, r2); } } /* deeper class */ public void hebbs_rule(object[] r1, object[] r2) { if (neuron_type == 0) { for(int i=0;i<k;i++) { /* Вот здесь все проблемы, я имею объекты, я хочу из них получить массивы, которые я изначально туда размещал. Т.е. конвертировать написанное в исходные типы данных. Реально ли это? */ weight[i] += input[i] * sgn(r1[1][s / N][s % N] * r1[2][s]) * sgn(r1[2][s] * r2[2][s]); } /* Типа Convert.ToDouble(r1[1][s / N][s % N]) etc...*/ } } /* Естественно, что я сейчас не смогу скомпилировать обращение к объекту, как к массиву: Ошибка 1 Невозможно применить индексирование через [] к выражению типа "object", etc...*/ /* ... */
Решение задачи: «Double[][] упаковка/распаковка в тип object»
textual
Листинг программы
(double[][])myobject
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д