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 ответов

31 просмотр

Используй классы/структуры. Потому что мне вот непонятно, что за 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;

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта