170 похожих чатов

Ребята, есть код: static int PseudoGenerator(ref int N, out int[] A,

out int[] B, out int[] C, out int[] D, out int[] E, out int[] F)
{
N = Input();
A = new int[N];
B = new int[N];
C = new int[N];
D = new int[N];
E = new int[N];
F = new int[N];
var rand = new Random();

for (int i = 0; i < N; i++)
{
A[i] = rand.Next(N);
B[i] = rand.Next(N);
C[i] = rand.Next(N);
D[i] = rand.Next(N);
E[i] = rand.Next(N);
F[i] = rand.Next(N);
}

return A[N]; - КАК ВСЕ МАССИВЫ ВОЗВРАТИТЬ?
}
Я хочу возвратить в качестве выходных параметров массивы от A[] до F[] - как это сделать? Зачем это делать? Потому что в другом методе я хочу эти массивы использовать вот так:
static int Arguments(ref int N)
{

double[] x = new double[N];
double[] y = new double[N];

for (int i = 0; i < N; i++)
{
int deltaX = A[i] * E[i] - B[i] * D[i];

x[i] = (C[i] * E[i] - B[i] * F[i]) / deltaX;
y[i] = (A[i] * F[i] - C[i] * D[i]) / deltaX;

}

return ... ; - тут должны возвратиться x[i] и y[i]....
}
И, как видите, тут везде нужно возвращать массивы! Я в методах новичок, и вообще не понимаю пока что сути методов. Я читал, что выходные параметры должны быть с out. Но как возвратить несколько Out-параметров - меня всегда (сколько учу методы) ставило в затруднение...
И наступает ещё одно затруднение: если в первом методе PseudoGenerator я возвращаю массивы (пусть я и додумался как это сделать), то во втором методе я должен их принять, как я это понимаю, создав ещё такие же 6 штук массивов! Я всё верно понимаю?
Буду рад, если вы подскажите как (1) возвратить несколько out-параметров (массивов) и (2) как принимать эти out-параметры не создавая отдельных параметров!

8 ответов

5 просмотров

Используй классы/структуры. Потому что мне вот непонятно, что за A, что за F, зачем тебе вот это все

В том то и дело, что out парметры не возвращаются. Они и так по ссылке будут доступны из главного кода (управляющего). Т. е классического return не нужно!!!! И как писали выше, раз вы уже в СиШарпе, а это классический ООП Язык. Создайте класс, в котором будут свойства с несколькими массивами - модель данных. Тогда в качестве параметров вы будете в метод просто передавать один элемент - класс-модель.

Олександр- Автор вопроса
OSM Joo
В том то и дело, что out парметры не возвращаются....

Я классы плохо понимаю, только учу. Но! Убрал return и вызвал метод PseudoGenerator и в качестве фактических параметров дал формальные параметры метода Arguments, оно вообще так можно?? static int Arguments(ref int N, ref int[] A, ref int[] B, ref int[] C, ref int[] D, ref int[] E, ref int[] F) { PseudoGenerator(out A, out B, out C, out D, out E, out F); ................

Олександр
Я классы плохо понимаю, только учу. Но! Убрал retu...

Можно конечно Но жутко неудобно Опять-таки, что за А, что за Е?

Олександр
Я классы плохо понимаю, только учу. Но! Убрал retu...

можно сделать свою модель с 5 массивами внутри и передавать-заполнять модель, не прописывая явно 5 аргументов

Олександр- Автор вопроса
Олександр
Так и сделаю, когда буду серьёзно учить ООП

Это ещё не ООП Используй просто стуктуры

Олександр
Так и сделаю, когда буду серьёзно учить ООП

Там у тебя будет struct Obj{ int[] SomePositiveNumbers; int[] Points;

Похожие вопросы

Обсуждают сегодня

подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
возможно для форматирования TimeStampZ нужен другой механизм, не?
Роман Лях (rgreat)
13
Добрый день. Абракадабра в 12-й студии ввела новый тип поля БД TSQLTimeStampOffset, использую в постгресе timestampz и вот с 12-й версии начались чудеса! До этого поля times...
Delphi Photo
9
Коллеги, здравствуйте! А можно узнать ваше мнение относительно Wolfram Mathematica vs Julia? Просто у меня стоит выбор между тем, чтобы продолжить преподавать Wolfram Mathemat...
Илья Гаража
10
Обновленный chat тестили уже господа? Готовимся на заводы ? Простой проект на ларавель собирает за 1 ответ..
Jacov Borisov
14
Дык какой описанный сценарий то? Единственное, что вижу я - это то что есть какой то интерфейс1 , про который известно, что у него есть метод, который возвращает другой интерф...
Jack128
7
А если без шуток, на чем десктоп сейчас пишут кроссплатформенный (ну чтобы с минимальным допиливанием под каждую платформу) и чтобы хорошая производительность софта была. Толь...
🐈
9
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта