Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Краткая теория C#.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
278.88 Кб
Скачать

Передача типов значений с помощью ссылки

Ключевое слово out используется для передачи аргументов по ссылке. Оно похоже на ключевое слово ref, за исключением того, что ref требует инициализации переменной перед ее передачей. Для работы с параметром out определение метода и вызывающий метод должны явно использовать ключевое слово out. Таким образом, если значение параметра до вызова метода не определено, используют out, если определено используют ref.

Рассмотрим пример подпрограммы ввода, обработки и вывода массива. "Ввести массив, заменить его элементы факториалами, вывести массив".

static void enter(out int[] massiv1)

{

int i, N; string s;

//вводим число элементов

Console.Write("Введите число элементов массива N=");

s = Console.ReadLine();

N = Convert.ToInt32(s);

//создаём массив необходимой длины

massiv1 = new int[N];

//запускаем цикл по всем элементам массива

for (i = 0; i < N; i++)

{

//вводим i-ый элемент

Console.Write("Введите {0}-й элемент массива ", i);

s = Console.ReadLine();

massiv1[i] = Convert.ToInt32(s);

}

}

static void process(ref int[] massiv1)

{

for(int j=0;j< massiv1.Length;j++)

{

int f = 1;

for (int i=2;i<=massiv1[j];i++)

f=f*i;

massiv1[j] = f;

}

}

static void output(int[] mas)

{

Console.WriteLine("Список элементов массива");

foreach (int i in mas)

Console.Write("{0} ", i);

}

static void Main(string[] args)

{

int[] my_massiv;

enter(out my_massiv);

process(ref my_massiv);

output(my_massiv);

Console.ReadKey();

}

45