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-параметры не создавая отдельных параметров!
Используй классы/структуры. Потому что мне вот непонятно, что за A, что за F, зачем тебе вот это все
В том то и дело, что out парметры не возвращаются. Они и так по ссылке будут доступны из главного кода (управляющего). Т. е классического return не нужно!!!! И как писали выше, раз вы уже в СиШарпе, а это классический ООП Язык. Создайте класс, в котором будут свойства с несколькими массивами - модель данных. Тогда в качестве параметров вы будете в метод просто передавать один элемент - класс-модель.
Я классы плохо понимаю, только учу. Но! Убрал 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); ................
Можно конечно Но жутко неудобно Опять-таки, что за А, что за Е?
можно сделать свою модель с 5 массивами внутри и передавать-заполнять модель, не прописывая явно 5 аргументов
Так и сделаю, когда буду серьёзно учить ООП
Это ещё не ООП Используй просто стуктуры
Там у тебя будет struct Obj{ int[] SomePositiveNumbers; int[] Points;
Обсуждают сегодня