Porady: definiowanie parametru dla procedury (Visual Basic)
Parametr umożliwia wywołaniu kodu wywołującego przekazanie wartości do procedury. Każdy parametr jest deklarowany dla procedury w taki sam sposób, jak zadeklarowanie zmiennej, określając jej nazwę i typ danych. Należy również określić mechanizm przekazywania i określić, czy parametr jest opcjonalny.
Aby uzyskać więcej informacji, zobacz Parametry i argumenty procedury.
Aby zdefiniować parametr procedury
W deklaracji procedury dodaj nazwę parametru do listy parametrów procedury, oddzielając ją od innych parametrów przecinkami.
Określ typ danych parametru.
Postępuj zgodnie z nazwą parametru klauzulą
As
, aby określić typ danych.Określ odpowiedni mechanizm przekazywania dla parametru. Zwykle przekazujesz parametr według wartości, chyba że chcesz, aby procedura mogła zmienić jego wartość w kodzie wywołującym.
Poprzedzaj nazwę parametru ByVal lub ByRef , aby określić mechanizm przekazywania. Aby uzyskać więcej informacji, zobacz Różnice między przekazywaniem argumentu według wartości a odwołaniem.
Jeśli parametr jest opcjonalny, poprzedzić mechanizm przekazywania opcjonalnym i postępować zgodnie z typem danych parametru z znakiem równości (
=
) i wartością domyślną.Poniższy przykład definiuje konspekt
Sub
procedury z trzema parametrami. Pierwsze dwa są wymagane, a trzeci jest opcjonalny. Deklaracje parametrów są rozdzielane przecinkami na liście parametrów.Sub updateCustomer(ByRef c As customer, ByVal region As String, Optional ByVal level As Integer = 0) ' Insert code to update a customer object. End Sub
Pierwszy parametr akceptuje obiekt i
updateCustomer
może bezpośrednio zaktualizować zmiennącustomer
przekazaną doc
, ponieważ argument jest przekazywany przez element ByRef. Procedura nie może zmienić wartości dwóch ostatnich argumentów, ponieważ są one przekazywane PrzezVal.Jeśli kod wywołujący nie dostarcza wartości parametru
level
, język Visual Basic ustawi go na wartość domyślną 0.Jeśli przełącznik sprawdzania typów (instrukcja Strict Option) to
Off
, klauzulaAs
jest opcjonalna podczas definiowania parametru. Jeśli jednak jeden parametr używa klauzuliAs
, wszystkie z nich muszą go używać. Jeśli przełącznik sprawdzania typów toOn
, klauzula jest wymaganaAs
dla każdej definicji parametru.Określanie typów danych dla wszystkich elementów programowania jest nazywane silnym wpisywaniem. Po ustawieniu języka
Option Strict On
Visual Basic wymusza silne wpisywanie. Jest to zdecydowanie zalecane z następujących powodów:Umożliwia obsługę funkcji IntelliSense dla zmiennych i parametrów. Dzięki temu można zobaczyć ich właściwości i inne elementy członkowskie podczas wpisywania kodu.
Umożliwia kompilatorowi przeprowadzanie sprawdzania typów. Pomaga to przechwytywać instrukcje, które mogą zakończyć się niepowodzeniem w czasie wykonywania z powodu błędów, takich jak przepełnienie. Przechwytuje również wywołania metod na obiektach, które ich nie obsługują.
Skutkuje to szybszym wykonywaniem kodu. Jednym z powodów jest to, że jeśli nie określisz typu danych dla elementu programowania, kompilator języka Visual Basic przypisuje mu
Object
typ. Skompilowany kod może być musiał przekonwertować między i innymi typamiObject
danych, co zmniejsza wydajność.