ПОНЯТНО О Visual Basic NET (том 3)




К чему все эти сложности? - часть 3


End Sub

Private Sub Печатаем(ByVal A2)                      'А2 - переменная, которую распечатываем

        Debug.WriteLine(A2)

End Sub

В чем смысл всех этих ужасных усложнений, этого превращения мухи в слона? Конечно, в нашем простейшем случае в них нет никакого смысла. Но когда дело дойдет до сложных проектов и процедур, здесь смысл прямой. Поэтому разберемся.

Зачем делить проект на мелкие процедуры, я уже раньше рассказывал. А вот зачем понадобились параметры?

Если ваша процедура сложная и делает что-нибудь полезное, то вы вполне можете захотеть, чтобы она использовалась и в других проектах. Но в другом проекте переменные скорее всего имеют другие имена, например, вместо A там используется B. В этом случае вам придется переписывать текст процедуры (в нашем конкретном случае везде заменить A на B). А переписывать не хочется. В общем, процедура теряет свою универсальность. Чтобы и не переписывать, и универсальность не потерять, надо применить параметры.

Параметру вы придумываете то имя, которое вам заблагорассудится (A1, A2), а не то, что вы видите в программе (A). И обратите внимание, что нашим процедурам с параметрами абсолютно все равно, что переменная имеет имя A. Нигде внутри процедуры это имя не встречается, поэтому процедура уверенно делает свое дело, каково бы оно ни было. Да и программисту как-то понятней, чем занимается процедура, если он видит в ее заголовке список параметров с удобными именами, да еще и с подробными комментариями. Это лучше, чем глядеть в тексте процедуры на чужую переменную A и вспоминать, что это, черт возьми, за переменная и в чем ее смысл.

В общем, совет такой – с глобальными и модульными переменными работайте по возможности через параметры. Что значит «по возможности»? А то, что некоторые такие переменные буквально пронизывают все процедуры проекта и организовывать для них в каждой процедуре параметры – та овчинка, которая не стоит выделки. Обычно таких переменных бывает немного и их легко запомнить.




Содержание  Назад  Вперед