Массивы параметров и params

Последнее обновление: 17.07.2018
Вопрос 1

Дан следующий метод:

static void Display(params int[] numbers)
{
	int result = 0;
	for (int i = 0; i < numbers.Length; i++)
	{
		result += numbers[i];
	}
	Console.WriteLine(result);
}

Какие из следующих вариантов представляют правильный способ вызова данного метода (правильных вариантов может быть несколько):

  • Display();

  • Display(1);

  • Display(1, 2);

  • Display(1, 2, 3);

  • Display(new int[] { 1, 2, 3 });

Все предложенные выше варианты представляют корректный вызов метода Display.

Вопрос 2

Дан следующий метод:

static void Display(int[] numbers)
{
	int result = 0;
	for (int i = 0; i < numbers.Length; i++)
	{
		result += numbers[i];
	}
	Console.WriteLine(result);
}

Какие из следующих вариантов представляют правильный способ вызова данного метода (правильных вариантов может быть несколько):

  • Display();

  • Display(1);

  • Display(1, 2);

  • Display(1, 2, 3);

  • Display(new int[] { 1, 2, 3 });

Корректный вызов метода Display представляет только один вариант: Display(new int[] { 1, 2, 3 });.

Вопрос 3

Какой будет результат выполнения следующей программы и почему:

using System;

namespace HelloApp
{
    class Program
    {
        static void Main(string[] args)
        {
           Display(1, 3, 4, 2);
            Console.ReadKey();
        }

        static void Display(params int[] numbers, int r)
        {
            int result = 0;
            for (int i = 0; i < numbers.Length; i++)
            {
                result += numbers[i];
            }
            result *= r;
            Console.WriteLine(result);
        }
    }
}

Программа не скомпилируется, потому что в методе Display после параметра с ключевым словом params определен еще один параметр.

Дополнительные материалы
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850