Урок 4 Функции и процедуры.
Привет. По просьбам читающих, после долгого перерыва продолжаю цикл статей о программирование на C#. Осталось вспомнить, о чем мы говорили последний раз. Бегло читаю последнюю статьи и понимаю, что продвинулись мы совсем не далеко.
Предлагаю, чтобы не затягивать предвкушение самого интересного, а именно написание программ для КПК, сделать еще 2 вводных урока, а дальше уже начать писать под коммуникаторы.
Что нам предстоит сделать в этом уроке?! Познакомится с функциями и процедурами в C#.
Процедура – это подпрограмма, которая может вызываться в коде основной программы и производить какие либо действия с переданными в нее переменными.
Функция – это такая же процедура, только ей свойственно явное возвращение результат ее работы.
Чтобы стало ясно, приведу пример:
static void CopyString(string a, ref string b) { b = a+b; } static string ReturnString(string a, string b) |
Из анализа приведенного кода видно, что процедура CopyString – не возвращает значений с помощью слова return, те на прямую. Она возвращает значения через ref – указатель. Подробнее о нем, вы можете почитать в книгах по C#, а можете не запариватся и просто запомнить, что если вам нужно поменять значение какой-либо переменной в процедуре и возвратить это значение не явно используйте ref.
Да чуть не забыл, ref можно применять как в функциях так и в процедурах и не один раз. Например:
static string ReturnString(string a, string b,ref string c) { c=a+b+” Test”; return a + b; } |
Что будет если мы засунем переменные a,b,c в функцию?! Например
a=Hello b=Artem e = ReturnString(a,b,c); |
Результат:
e = HelloArtem
c = HelloArtem Test
Как определить что перед вами процедура или функция и как вообще их писать?!
Запомните процедура всегда начинается со слова void, а функция с названия класса или типа, который она возвращает. Напрмер string в нашем случае.
Пишется процеру просто:
<модификатор доступа> Void <название> (параметры) { тело процедуры } |
Функция аналогично:
<модификатор доступа> <тип> <название> (параметры) { Тело функции Return <тип>; } |
<модификатор доступа>: позволяет видеть или скрывать процедуры для их вызова, может быть: public private. Так же существуют можификатор static.
Подробнее о них посмотрите в исходнике урока. Добавлю только одно статические процедуры и функции (со словом статик) постоянно находятся в памяти компьютера и создаются при запуске программы, в то время как не статические создаются только во время создания экземпляра класса, к которому они принадлежат. Чтобы мои слова стали понятны, пора скачать и посмотреть исходник с комментариями.
Так с процедурами и функциями пока все). Хотя наверно стоит сказать, что процедуры и функции нужны для того, чтобы оптимизировать код программы:
Они позволяют выделить повторяющийся код в подпрограмму и вызывать ее по требованию, что позволяет избежать многократного написания повторяющегося кода, а так же уменьшить место занимаемое программой.
Так же функции и процедуру позволяют выделять участки кода в логические блоки, что помогает, потом ее быстрей разбирать и понимать, чем читать однотипный код программы. А так же в случае если вы обнаружили ошибку в коде процедуры (функции) ее исправление приведет к исправлению во всей программе и вам не придется пересматривать весь написанный талмуд повторяющихся шаблонов.
[download id=»18″]
Спасибо. Ваш план понравился. Жду с нетерпением продолжения. Единственное, домашнее задание дать забыли 🙁
ссилочки то бажано обновити. А то исходнік загрузить неможливо. А так нічо .Пасиба .