Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Передача параметров по значению и по ссылкеСодержание книги
Поиск на нашем сайте
Когда параметры передаются в метод обычным образом (без дополнительных ключевых слов ref и out), любые изменения параметров внутри метода не влияют на его значение в основной программе. Предположим, у нас есть следующий метод:
private void Calc(int Number) { Number = 10; }
Видно, что внутри метода происходит изменение переменной Number, которая была передана как параметр. Попробуем вызвать метод:
int n = 1; Calc(n); Console.WriteLine(n);
На экране появится число 1, то есть, не смотря на изменение переменной в методе Calc, значение переменной в главной программе не изменилось. Это связано с тем, что при вызове метода создаётся копия переданной переменной, именно её изменяет метод. При завершении метода значение копий теряется. Такой способ передачи параметра называется передачей по значению. Чтобы метод мог изменять переданную ему переменную, её следует передавать с ключевым словом ref – оно должно быть как в сигнатуре метода, так и при вызове:
private void Calc(ref int Number) { Number = 10; } int n = 1; Calc(ref n); Console.WriteLine(n);
В этом случае на экране появится число 10: изменение значения в методе сказалось и на главной программе. Такая передача метода называется передачей по ссылке, т.е. передаётся уже не копия, а ссылка на реальную переменную в памяти. Если метод использует переменные по ссылке только для возврата значений и ему не важно что в них было изначально, то можно не инициализировать такие переменные, а передавать их с ключевым словом out. Компилятор понимает, что начальное значение переменной не важно и не ругается на отсутствие инициализации:
private void Calc(out int Number) { Number = 10; } int n; // Ничего не присваиваем! Calc(out n);
12.5. Выполнение индивидуального задания 1) Написать метод min(x, y), находящий минимальное значение из двух чисел. С его помощью найти минимальное значение из четырёх чисел a, b, c, d. 2) Написать метод max(x, y), находящий максимальное значение из двух чисел. С его помощью найти максимальное значение из четырёх чисел a, b, c, d. 3) Написать метод, вычисляющий значение n/xn. С его помощью вычислить выражение: 4) Написать метод, вычисляющий значение n/xn. С его помощью вычислить выражение: 5) Написать метод, вычисляющий значение xn/(n+x). С его помощью вычислить выражение: 6) Написать метод, вычисляющий значение sin(x) + cos(2 * x). С его помощью определить в какой из точек a, b или с значение будет минимальным. 7) Написать метод, вычисляющий значение x2 + y2. С его помощью определить с какой парой чисел (a, b) или (с, d) значение будет максимальным. 8) Написать метод, вычисляющий значение x2 * y3 * . С его помощью определить с какой тройкой чисел (a, b, c) или (d, e, f) значение будет максимальным. 9) Написать метод, который у чётных чисел меняет знак, а нечётные числа оставляет без изменения. С его помощью обработать ряд чисел от 1 до 10. 10) Написать метод, который положительные числа возводит в квадрат, а отрицательные – в куб. С его помощью обработать ряд чисел от -10 до 10. 11) Написать метод, который вычисляет значения x=sin2(a) и y=cos2(a). Напечатать таблицу значений от –π до π с шагом π/4. 12) Написать метод, который вычисляет значения x=a2 и y= . Напечатать таблицу значений от –10 до 10 с шагом 1. 13) Написать метод, который в переданной строке заменяет все точки на многоточие. С его помощью обработать пять разных строк и отобразить их на экране. 14) Написать метод, который в переданной строке заменяет все строчные буквы на заглавные и наоборот. С его помощью обработать пять разных строк и отобразить их на экране. 15) Написать метод, который разделяет переданную строку на две отдельных строки: первая содержит исходную строку до первой точки, а вторая – исходную строку после первой точки. С его помощью обработать пять разных строк и отобразить результаты на экране.
|
||||
Последнее изменение этой страницы: 2017-02-07; просмотров: 1203; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.243.29 (0.005 с.) |