Іноді буває зручно створити метод, в який можна передавати різну кількість аргументів. Мова С# надає таку можливість за допомогою ключового слова params. Параметр, помічений цим ключовим словом, розміщується в списку параметрів останнім і позначає масив заданого типу невизначеної довжини, наприклад:
public int Calculate( int a, out int c, params int[] d)
...
У цей метод можна передати три і більше параметрів. Усередині методу до параметрів, починаючи з третього, звертаються як до звичайних елементів масиву. Кількість елементів масиву отримується за допомогою властивості Length. Як приклад розглянемо метод обчислення середнього значення елементів масиву (лістинг 7.1).
Лістинг 7.1. Методи із змінною кількістю аргументів
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace examp40
{
class Program
{
static long fact(long n)
{
if (n == 0 || n == 1) return 1;
return (n * fact(n - 1));
}
public static double Average(params int[] a)
{
if (a.Length == 0)
throw new Exception
("Недостатньо аргументів в методі");
double av = 0;
foreach (int elem in a) av += elem;
return av / a.Length;
}
static void Main(string[] args)
{
int[] a = { 10, 20, 30 };
int[] b = { -11, -4, 12, 14, 32, -1, 28 };
long d;
try
{
// ---------------------------------
Console.Write(" ВВедите N ");
d = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(" " + fact(d));
// ---------------------------------
Console.WriteLine(Average(a));
Console.WriteLine(Average(b));
short z=1,e=12;
byte v=107;
Console.WriteLine(Average(z,e,v));
Console.WriteLine(Average());
}
catch(Exception e)
{
Console.WriteLine(e.Message);
return;
}
}
}
}
Результат роботи програми:
Недостатньо аргументів в методі