СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Массив параметров и ключевое слово params

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Массив параметров и ключевое слово params»

Во всех предыдущих примерах мы использовали постоянное число параметров. Но, используя ключевое слово params, мы можем передавать неопределенное количество параметров:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

static void Addition(params int[] integers)

{

    int result = 0;

    for (int i = 0; i

    {

        result += integers[i];

    }

    Console.WriteLine(result);

}

 

static void Main(string[] args)

{

    Addition(1, 2, 3, 4, 5);

     

    int[] array = new int[] { 1, 2, 3, 4 };

    Addition(array);

 

    Addition();

    Console.ReadLine();

}

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

Если же нам надо передать какие- то другие параметры, то они должны указываться до параметра с ключевм словом params:

1

2

3

//Так работает

static void Addition( int x, string mes, params int[] integers)

{}

Вызов подобного метода:

1

Addition(2, "hello", 1, 3, 4);

Однако после параметра с модификатором params мы НЕ можем указывать другие параметры. То есть следующее определение метода недопустимо:

1

2

3

//Так НЕ работает

static void Addition(params int[] integers, int x, string mes)

{}

Массив в качестве параметра

Также этот способ передачи параметров надо отличать от передачи массива в качестве параметра:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

// передача параметра с params

static void Addition(params int[] integers)

{

    int result = 0;

    for (int i = 0; i

    {

        result += integers[i];

    }

    Console.WriteLine(result);

}

// передача массива

static void AdditionMas(int[] integers, int k)

{

    int result = 0;

    for (int i = 0; i

    {

        result += (integers[i]*k);

    }

    Console.WriteLine(result);

}

 

static void Main(string[] args)

{

    Addition(1, 2, 3, 4, 5);

 

    int[] array = new int[] { 1, 2, 3, 4 };

    AdditionMas(array, 2);

 

    Console.ReadLine();

}

Так как метод AdditionMas принимает в качестве параметра массив без ключевого слова params, то при его вызове нам обязательно надо передать в качестве параметра массив.