Помощь в написании студенческих работ
Антистрессовый сервис

Методы с переменным числом аргументов

РефератПомощь в написанииУзнать стоимостьмоей работы

Как уже сказано, этот параметр может быть только последним (или единственным) в списке параметров. В обращении к методу этот параметр заменяется списком аргументов, каждый из которых должен иметь тот же тип, что и элементы массива параметров. В теле метода отдельные реально использованные аргументы представлены элементами массива-параметра. Количество аргументов соответствует длине массива. В том… Читать ещё >

Методы с переменным числом аргументов (реферат, курсовая, диплом, контрольная)

У параметра с модификатором params назначение особое — он представляет в методе список аргументов неопределенной (заранее не фиксированной) длины. Его тип — одномерный массив с элементами типа, указанного в спецификации параметра.

С применением метода, имеющего параметр со спецификацией params string [], мы уже познакомились в гл. 8, где рассмотрели (параграф 8.10) возможности передачи в метод Main () аргументов из командной строки.

Как уже сказано, этот параметр может быть только последним (или единственным) в списке параметров. В обращении к методу этот параметр заменяется списком аргументов, каждый из которых должен иметь тот же тип, что и элементы массива параметров. В теле метода отдельные реально использованные аргументы представлены элементами массива-параметра. Количество аргументов соответствует длине массива.

В качестве примера объявления и использования метода с таким параметром приведем программу с методом для вычисления значений полинома.

Методы с переменным числом аргументов.

// 0914.cs — массив-параметр

using System;

class Program.

{

// Вычисляет значение полинома с целыми коэффициентами: static double polynom (double х, params int[] coef).

{

double result = 0.0; for (int i = 0; i < coef. Length; i++) result = result * x + coef[i]; return result;

}

static void Main ().

{

Console.WriteLine (polynom (3.0, 3, 1, 2));

} }

Результат выполнения программы:

Метод polynom () возвращает значение типа double, т. е. играет роль функции. Первый параметр double х представляет значение аргумента полинома. Второй параметр params int [] coef дает возможность передать в метод список коэффициентов полинома а0, аг, …, ап_г, ап. Все коэффициенты должны иметь целочисленные значения. Их реальное количество, т. е. степень полинома, при обращении определяется числом использованных аргументов, а в теле метода — значением свойства coef.Length. В теле метода:

coef[0]=a0, coef[l]=a1, coef[n]=an.

Для вычисления полинома использована схема Горнера, позволяющая заменить явные возведения в степень последовательными умножениями:

Методы с переменным числом аргументов.

В том случае, когда требуется метод, принимающий произвольное число параметров любых разных типов, Дж. Рихтер [6] предлагает использовать параметр вида params object[]. Он приводит в качестве примера метод, который выводит обозначения (наименования) типов всех переданных методу аргументов. Вот программа с этим методом:

// 0915.cs — массив-параметр «универсального» типа using System; class Program {.

// Метод выводит названия типов аргументов: static void DisplayTypes (params object[] objects).

{

foreach (object о in objects).

Console.WriteLine (o.GetType ());

}

static void Main ().

{

DisplayTypes («yes», 432, new objectQ);

} }

Результат выполнения программы:

System.String System.Int32 System.object.

Обратим внимание, что параметр, снабженный модификатором params, обеспечивает передачу аргументов по значению, т. е. значения аргументов после выполнения метода не изменяются. Следующая программа иллюстрирует это правило.

// 0916.cs — переменное число аргументов using System; class Program {.

static void varParams (params int[] ar).

{

for (int i = 0; i < ar. Length; i++).

{

ar[i] *= 2;

Console.Write («ar[{0}]={l} «, i, ar[i]);

} }

static void Main ().

{

int a = 2, b = 3, c = 5; varParams (a, b, c);

Console.WriteLine («a={0}, b={l}, c={2}», a, b, c);

} }

Результат выполнения программы:

ar[0]=4 ar[l]=6 ar[2]=10.

a=2, b=3, c=5.

Значения переменных а, Ь, с после их использования в качестве аргументов метода varParams () не изменились, хотя в теле метода элементам массива-параметра присвоены новые значения.

Показать весь текст
Заполнить форму текущей работой