Весь виконуваний код повинен бути всередині процедури. Використовуйте процедуру Sub. якщо не потрібно повертати значення зухвалому коду. Використовуйте процедуру Function якщо необхідно повернути значення.
вказівка підпрограми
Для процедур Sub за замовчуванням встановлений загальний доступ. Можна обробити їх рівні доступу за допомогою модифікаторів доступу.
Якщо процедура використовує ключове слово Implements. що містить клас або структура повинні мати виписку Implements. безпосередньо за його випискою Class або Structure. Оператор Implements повинна включати кожен інтерфейс, який визначений в implementslist. Однак ім'я, під яким інтерфейс визначає Sub (в definedname) не повинно відповідати імені цієї процедури (в name).
Повернення з процедури
Після передачі процедурі Sub зухвалому коду, виконання продовжаться з випискою після виписки, що викликала її.
У наступному прикладі показаний повернення з процедури Sub.
Оператори Exit Sub і Return викликають негайний вихід з процедури Sub. Будь-яка кількість операторів Exit Sub і Return може використовуватися в будь-якому місці процедури, і їх також можна використовувати разом з операторами Exit Sub і Return.
виклик процедури
Виклику процедури по Sub за допомогою імені процедури в виписці, а потім по імені зі списком аргументів в круглих дужках. Дужки можна опустити тільки в тому випадку, якщо не вказувати аргументи. Однак, код є більш зручним для читання, якщо завжди включати круглі дужки.
Процедура Sub і процедура Function можуть мати параметри і виконати ряд виписок. Однак процедура Function повертає значення, а процедура Sub немає. Тому не можна використовувати процедуру Sub в вираженні.
Можна використовувати ключове слово Call при виклику процедури по Sub. однак це ключове слово не рекомендується для більшості користей. Додаткові відомості див. У розділі Оператор Call (Visual Basic).
Visual Basic іноді змінює місцями містяться в коді арифметичні вирази для підвищення внутрішньої ефективності виконання програми. З цієї причини, якщо список аргументів включає вираження, які викликають інші процедури слід припускати, що ці вирази буде Викликаються в зазначеному порядку.
підпрограми Async
Async за допомогою функції можна викликати асинхронні функції без використання явних зворотних викликів або вручну розділити ваш код через кілька функцій або лямбда-вирази.
Якщо позначити модифікатором Async процедуру можна використовувати оператор почекайте в процедурі. Якщо елемент керування досягає вираз Await в процедурі, Async повернення зухвалому об'єкту і ходу виконання робіт в процедурі призупиняється до тих пір, поки почекати завдання не завершиться. Якщо завдання завершена, виконання може відновити в процедурі.
Передати процедурі Async викликає об'єкту, якщо виявлений спочатку почекати об'єкт, який ще не завершений або завершення процедури після досягнення двох величин - немає Async з цих умов виконується першим.
Можна також помітити модифікатором Оператор Function (Visual Basic) Async. Функція Async може мати тип значення Task або Task. Приклад далі в цьому розділі показана функція Async. яка має повертається тип Task.
Процедури Async Sub в основному використовуються для обробників подій, де значення не можуть бути повернуті. Процедури Async Sub можна почекати, а що викликає процедури Async Sub не може перехоплювати виключення, процедура Sub створює виняток.
Процедура Async не може оголошувати всі параметри ByRef.