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

1: Using System;

2:

3: // Возврат значений из метода Main ()

4:

5: // По завершении программы имеется возможность вернуть значение из метода Main () вызывающему процессу или операционной системе.

6:

7: // Возвращаемое значение метода Main() может быть только типа int.

8:

9: // Как правило, значение, возвращаемое методом Main (), указывает на нормальное завершение программы,

10: // или на аварийное ее завершение из-за сложившихся ненормальных условий выполнения.

11: // Условно нулевое возвращаемое значение обычно указывает на нормальное завершение программы,

12: // а все остальные значения обозначают тип возникшей ошибки.

13:

14: namespace Methods

15: {

16: class Program

17: {

18: static int Main()

19: {

20: Console.WriteLine("Hello world!");

21:

22: // Delay.

23: Console.ReadKey();

24:

25: return 0;

26: }

27: }

28: }

Возврат значений из метода Main(). По завершении программы имеется возможность вернуть значение из метода Main() вызывающему процессу или операционной системе. Что это значит? Вызывающему процессу. Вот давайте как раз об этом и поговорим. Что такое процесс? Раньше, еще до такого активного использования операционных систем Windows мы программы называли программами. Вот несу я дискету с программой. Вставляю ее в дисковод. Запускаю. Программа попадает в память, в ОЗУ. И она программа как на дискете, так и во время выполнения в ОЗУ. Но приходит ОС Windows и говорит, что больше не хочет что мы программы называли программами. Когда вы несете программу по Windows на дискете вы должны называть ее приложением – Application. Это приложение к ОС Windows. Когда вы запускаете, оно оказывается в оперативной памяти, процессор начинает его выполнять. Мы не хотим, чтобы вы это приложение называли приложением когда оно в ОЗУ. Мы хотим чтобы его называли процессом. Смотрите, какие термины. До Windows программы на дискете и программы в ОЗУ. Пришла Windows, программу на дискете мы начали называть – Application – приложение, а программу во время выполнения мы называем процессом. ОС – это большая программа, которая нас обслуживает, которая позволяет запускать другие программы и когда мы запускаем какую-то программу, такое приложение под ОС Windows она оказывается в ОЗУ, то такие программы во время выполнения называются процессами. Так вот оказывается что одни программы, могут вызывать другие программы. Почему бы и нет. Одна программа вызывает другую программу, для того, чтобы другая программа для первой программы выполнила какую-то деятельность. Например. Почему нет. Так вот а результат этой деятельности нужно получить? Или успешность/неуспешность выполнения. Или что там вообще она делает. Вот вы программа, которая пишет программы – вы программисты. Но вы не умеете делать дома ремонт. Поэтому что вы делаете? Вы вызываете другого человека-программу, которая приходит и красит потолки, шлифует паркет, ставит стеклопакеты. Заметьте, и вы к ней периодически обращаетесь и говорите. Значит так, я пошел на работу, а ты сегодня мне сделай ремонт и вечером отдашь мне результат, или скажешь успешно или не успешно сделал мне ремонт. Такие у нас с вами шуточные примеры. Поэтому, обратите внимание, мы должны при создании нашей программы предусмотреть, что нас может вызвать. Другая программа может двойным щелчком мыши запустить нашу программу и получить возвращаемое значение из нашей программы. Обратите внимание, если другая программа нас запускает, либо ОС нас может запустить, потому что ОС это тоже программа. Она рассчитывает получить какое-то возвращаемое значение. Давайте посмотрим, возвращаемое значение метода Main может быть только типа int. Все, оно либо void, либо int. Как правило, значение возвращаемое методом Main указывает на успешное завершение программы, либо на аварийное ее завершение. Что это значит. Ага, если мы возвращаем 0 другой программе, мы говорим: «Я не смогла нормально выполнится, потому что мне для нормального выполнения не хватало таких-то файлов, не хватало доступа в интернет или метеосервис был отключен, ну чего-то мне не хватило.» Эта программа понимает, что вторая программа не выполнила работу. Вы понимаете, что у вас ремонт не сделали и вам сегодня придется ночевать у друзей, к примеру. Вы не можете идти домой, потому что вам вернулся 0. Представляете. Либо если вам возвращается 1, это значит что строители вам звонят и говорят, что они закончили ремонт и вы можете идти и ночевать в своей квартире. Так же и наша программа, которую вызовет другая программа должна ей сказать либо она выполнила деятельность, либо по каким-то причинам не выполнилась. Вот у строителей не хватало водки или не хватало материалов, не успели сделать. Хорошо. Как правило, значение, возвращаемое методом Main (), указывает на нормальное завершение программы, или на аварийное ее завершение из-за сложившихся ненормальных условий выполнения. Условно нулевое возвращаемое значение обычно указывает на нормальное завершение программы, а все остальные значения обозначают тип возникшей ошибки. Вы возвращаете 0 если успех. Возвращаете 1 – не было водки. Возвращаете 2 – не было плитки. 3 – не успели подвести стеклопакет. 4 – машина для шлифовки паркета сломалась. 5 – обвалился потолок. 6 – провалился пол. 7 – разрушилась стена. 8 – взрыв в туалете. 9 – затопило. Видите сколько типов ошибок. И мы понимаем, что 0 – это все прекрасно. Хорошо. Думаю что с такой простейшей теорией вам достаточно понятно, а мы потихоньку будем двигаться дальше. Смотрим, допустимы ли перегрузки методов Main? Мы понимаем, что система, на системный загрузчик с целевой платформой, вместе с CLR будет искать точку входа по методу Main, и по специальному методу Main, него должно быть возвращаемое значение. Давайте мы попробуем создать здесь еще один метод Main.