Основы языка C# 2005. Евсеева О.Н - 85 стр.

UptoLike

Составители: 

89
6. ПРОЦЕДУРЫ И ФУНКЦИИ
Первыми формами модульности, появившимися в языках
программирования, были процедуры и функции. Они позволяли задавать
определенную функциональность и многократно выполнять один и тот же
параметризованный программный код при различных значениях параметров.
Поскольку функции в математике использовались издавна, то появление их в
языках программирования было совершенно естественным. Уже с первых
шагов процедуры и функции позволяли решать одну из важнейших задач,
стоящих перед программистами, – задачу повторного использования
программного кода. Встроенные в язык функции давали возможность
существенно расширить возможности языка программирования. Важным
шагом в автоматизации программирования было появление библиотек
процедур и функций, доступных из используемого языка.
Долгое время процедуры и функции играли не только функциональную,
но и архитектурную роль. Весьма популярным при построении программных
систем был метод функциональной декомпозиции «сверху вниз», и сегодня еще
играющий важную роль. Но с появлением объектно-ориентированного
программирования (ООП) архитектурная роль функциональных модулей
отошла на второй план. Для объектно-ориентированных языков, к которым
относится и язык C#, в роли архитектурного модуля выступает класс.
Программная система строится из модулей, роль которых играют классы, но
каждый из этих модулей имеют содержательную начинку, задавая некоторую
абстракцию данных.
Прежнюю роль библиотек процедур и функций теперь играют
библиотеки классов. Библиотека классов FCL, доступная в языке C#,
существенно расширяет возможности языка. Знание классов этой библиотеки и
методов этих классов совершенно необходимо для практического
программирования на C# с использованием всей его мощи.
Процедуры и функции связываются с классом, они обеспечивают
функциональность данных класса и называются методами класса. Главную
роль в программной системе играют данные, а функции лишь служат данным.
Напомним еще раз, что в C# процедуры и функции существуют только как
методы некоторого класса, они не существуют вне класса. В данном контексте
понятие класс распространяется и на все его частные случаиструктуры,
интерфейсы, делегаты.
В языке C# нет специальных ключевых слов – procedure и function, но
присутствуют сами эти понятия. Синтаксис объявления метода позволяет
однозначно определить, чем является методпроцедурой или функцией.
Функция отличается от процедуры двумя особенностями:
1. она всегда вычисляет некоторое значение, возвращаемое в качестве
результата функции;
2. и вызывается в выражениях.