Возврат массива из метода C# Полное руководство Герберт Шилдт
|
В языке C# массивы реализованы в виде объектов, а это означает, что метод может также возвратить массив. (В этом отношении C# отличается от C++, где не допускается возврат массивов из методов.) В качестве примера ниже приведена программа, в которой метод FindFactors () возвращает массив, содержащий множители переданного ему аргумента.
// Возвратить массив из метода.
using System;
class Factor { /* Метод возвращает массив facts, содержащий множители аргумента num. При возврате из метода параметр numfactors типа out будет содержать количество обнаруженных множителей. */ public int[] FindFactors(int num, out int numfactors) { int [ ] facts = new int [80]; // размер массива 80 выбран произвольно int i, j;
// Найти множители и поместить их в массив facts. for(i=2, j = 0; i < num/2 + 1; i++) if ( (num%i)==0 ) { facts[j] = i; j++; }
numfactors = j; return facts; } }
class FindFactors { static void Main() { Factor f = new Factor (); int numfactors; int [ ] factors;
factors = f.FindFactors(1000, out numfactors);
Console.WriteLine("Множители числа 1000: "); for (int i=0; i < numfactors; i++) Console.Write(factors [ i ] + " ");
Console.WriteLine(); } }
При выполнении этой программы получается следующий результат: Множители числа 1000: 2 4 5 8 10 20 25 40 50 100 125 200 250 500 В классе Factor метод FindFactors () объявляется следующим образом: public int[] FindFactors(int num, out int numfactors) { Обратите внимание на то, как указывается возвращаемый массив типа int. Этот синтаксис можно обобщить. Всякий раз, когда метод возвращает массив, он указывается аналогичным образом, но с учетом его типа и размерности. Например, в следующей строке кода объявляется метод someMeth (), возвращающий двумерный массив типа double: public doublet,] someMeth() { // ...
|