В 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; inti] 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 { // ...
Перегрузка методов
В C# допускается совместное использование одного и того же имени двумя или более методами одного и того же класса, при условии, что их параметры объявляются по-разному. В этом случае говорят, что методы