- •5. Обзор встроенных типов данных в с#. Применение встроенной функциональности типов данных.
- •6. Пространство имён System. Класс System.Math
- •7.Операции ввода-вывода. Формат вывода.
- •8. Арифметические операции. Операции отношений и логические операции. Операторы и выражения в c# .
- •Операторы
- •9.Массивы в с#. Одномерные массивы.
- •10.Класс System.Random, применение его методов для создания массива случайных чисел. Класс System.Array, использование его методов и свойства Length.
- •11. Двумерныемассивы в c#. Виды двумерных массивов и способы их определения. Способы создания двумерных массивов. Вывод матриц на экран по строкам.
- •12. Структуры в c#. Создание структур. Массивы структур.
- •13.Объект и его свойства. Характеристики ооп.
- •14.Определение классов в c#. Члены класса. Форма определения класса.
- •15.Конструкторы. Параметризованные конструкторы. Создание экземпляра класса. Использование оператора new.
- •16. Типы значений и ссылочные типы. Динамическое использование памяти: стеки и кучи. Упаковка и распаковка.
- •18. Определение методов класса. Модификаторы доступа к методам класса. Параметры методов класса, передача аргументов.
- •19. Модификаторы ref, out, params параметров методов.
- •20.Возвращение методами объектов класса. Возвращение методами массивов Возвращение методами объектов класса
- •Возвращение методами массивов
- •21. Общие (статические) члены класса. Доступ к общим членам. Ограничения на static-методы.
- •22.Цикл «Жизни». Область видимости и время существования переменных.
- •23. Преобразование и приведение типов данных.
19. Модификаторы ref, out, params параметров методов.
Модификатор ref параметров методов
ref (от слова reference – ссылка). Модификатор параметра метода ref позволяет передавать не копию значения, а его адрес.
Модификатор параметра метода ref можно также использовать для получения нескольких значений из метода. Вспомним методы класса Point Get_x() и Get_y(). Чтобы прочесть (получить) значения членов-переменных, использовать два метода не очень удобно. Хорошо бы получить и x, и y при вызове одного метода. Однако метод (это – функция), содержащий оператор return, возвращает одно значение. Для решения этой проблемы и используется модификаторы параметров ref. И тогда передача результатов работы метода ref-параметрам произойдет по ссылке.
Примечания:
-
Модификатор ref должен быть указан и перед параметром в методе, и перед аргументом в вызове метода.
-
Аргументу, передаваемому методу со словом ref, должно быть присвоено значение до вызова метода, ведь параметр должен ссылаться на действительное значение.
-
ref обычно применяют для того, чтобы метод внес изменения в существующие значения (например, обмен значениями, сортировка массива, или преобразование массива).
Модификатор out параметров методов. Он чаще всего используется не для передачи значения методу, а для его получения из метода. Модификатор out работает точно так же, как и модификатор ref с единственным исключением: в метод out-аргументы можно передавать и не инициализированными. Тогда переменной (аргументу со словом out) присваивать начальное значение до вызова метода не нужно.
Примечание: Метод до своего завершения обязательно должен присвоить out-параметру полученное значение.
Модификаторы ref и out можно применять и к ссылочным параметрам, т.е. параметрам-объектам. В этом случае реализуется передача ссылки по ссылке. Это позволяет методу изменять объект, на который указывает ссылка-параметр.
Использование переменного количества аргументов и модификатор params. Иногда нужен метод, который принимал бы произвольное число аргументов. Например, метод, который находит максимальное значение в наборе чисел. Методу может быть передано 2, 3, 4 и т.д. значения. Такому методу нужен специальный параметр, который заменяет собой произвольное количество параметров. Это реализуется с помощью модификатора params. Модификатор params используется для объявления параметра-массива, который сможет получить некоторое количество аргументов (в том числе и нулевое). Количество элементов в массиве будет равно числу аргументов, переданных методу.
Примечания: В любом методе может быть только один модификатор params. Параметр с модификатором params может быть только последним параметром в списке параметров метода.
20.Возвращение методами объектов класса. Возвращение методами массивов Возвращение методами объектов класса
Метод может возвращать данные любого типа, в том числе классового. В тех случаях, когда метод возвращает объект, существование этого объекта продолжается до тех пор, пока на него есть хотя бы одна ссылка. И только когда на объект больше нет ни одной ссылки, он подвергается утилизации, т.е. попадает в поле действия процесса сбора мусора. Таким образом, объект не будет разрушен только по причине завершения метода, который его создал.
Пример: В классе Point разработаем метод Uwelichennaja_tochka(…).
public Point Uwelichennaja_tochka(int koef)
{
return new Point(x* koef, y* koef);
}
В Main() вызовем этот метод:
T4.Show();
Point T5=new Point();
T5=T4. Uwelichennaja_tochka(100);
T5.Show(); // Выполнить приложение!