русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Методи із змінною кількістю аргументів


Дата додавання: 2015-01-08; переглядів: 1162.


 

Іноді буває зручно створити метод, в який можна передавати різну кількість аргументів. Мова С# надає таку можливість за допомогою ключового слова 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;

}

 

}

}

}

Результат роботи програми:

Недостатньо аргументів в методі

 


<== попередня лекція | наступна лекція ==>
Рекурсивні методи | Метод Main


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн