Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Deklaruje procedurę Set właściwości używaną do przypisywania wartości do właściwości.
Składnia
[ <attributelist> ] [ accessmodifier ] Set [([ByVal value [ As datatype ]])]
[ statements ]
End Set
Części
attributelist
Opcjonalny. Zobacz Lista atrybutów.
accessmodifier
Opcjonalnie dla co najwyżej jednej z instrukcji Get i Set w tej właściwości. Może być jednym z następujących elementów:
Protected Friend
Zobacz Poziomy dostępu w Visual Basic.
value
Opcjonalny. Parametr zawierający nową wartość właściwości. Jeśli nie podano (jeśli lista parametrów nie jest obecna lub jest pusta), zdefiniowany jest niejawny parametr o nazwie value . Typ danych tego niejawnego parametru to typ danych właściwości, w której zadeklarowana jest ta Set instrukcja.
datatype
Wymagane, jeśli value jest obecny i Option Strict ma wartość On. Nie można go przedstawić, jeśli value nie zostanie podany. Typ danych parametru value . Określony typ danych musi być taki sam jak typ danych właściwości, w której zadeklarowana jest ta Set instrukcja.
statements
Opcjonalny. Co najmniej jedna instrukcja uruchamiana po wywołaniu Set procedury właściwości.
End Set
To jest wymagane. Przerywa definicję Set procedury właściwości.
Uwagi
Każda właściwość musi mieć procedurę Set właściwości, chyba że właściwość jest oznaczona .ReadOnly Procedura Set służy do ustawiania wartości właściwości.
Program Visual Basic automatycznie wywołuje procedurę właściwości Set , gdy instrukcja przypisania udostępnia wartość, która ma być przechowywana we właściwości.
Program Visual Basic przekazuje parametr do Set procedury podczas przypisywania właściwości. Jeśli nie podasz parametru dla Setprogramu , zintegrowane środowisko projektowe (IDE) używa niejawnego parametru o nazwie value. Parametr zawiera wartość, która ma zostać przypisana do właściwości . Zazwyczaj ta wartość jest przechowywana w prywatnej zmiennej lokalnej i zwracana za każdym razem, gdy Get zostanie wywołana procedura.
Treść deklaracji właściwości może zawierać tylko właściwości Get i Set procedury między instrukcją Właściwości a instrukcją End Property . Nie może przechowywać niczego innego niż te procedury. W szczególności nie może przechowywać bieżącej wartości właściwości. Tę wartość należy przechowywać poza właściwością, ponieważ jeśli przechowujesz ją wewnątrz jednej z procedur właściwości, inna procedura właściwości nie może uzyskać do niej dostępu. Zwykle metoda polega na przechowywaniu wartości w zmiennej prywatnej zadeklarowanej na tym samym poziomie co właściwość. Należy zdefiniować procedurę Set wewnątrz właściwości, do której ma zastosowanie.
Procedura Set jest domyślnie ustawiona na poziom dostępu jego właściwości zawierającej, chyba że zostanie użyta accessmodifier w instrukcji Set .
Reguły
Mieszane poziomy dostępu. Jeśli definiujesz właściwość odczytu i zapisu, możesz opcjonalnie określić inny poziom dostępu dla
Getprocedury lubSet, ale nie dla obu tych metod. Jeśli to zrobisz, poziom dostępu do procedury musi być bardziej restrykcyjny niż poziom dostępu właściwości. Jeśli na przykład właściwość jest zadeklarowanaFriend, można zadeklarować proceduręSetPrivate, ale niePublic.Jeśli definiujesz
WriteOnlywłaściwość,Setprocedura reprezentuje całą właściwość. Nie można zadeklarować innego poziomu dostępu dlaSetelementu , ponieważ spowoduje to ustawienie dwóch poziomów dostępu dla właściwości .
Zachowanie
Zwracanie z procedury właściwości.
SetGdy procedura powróci do kodu wywołującego, wykonanie będzie kontynuowane zgodnie z instrukcją, która dostarczyła wartość do przechowywania.Setprocedury właściwości mogą zwracać przy użyciu instrukcji Return lub instrukcji Exit.Instrukcje
Exit PropertyiReturnpowodują natychmiastowe wyjście z procedury właściwości. Dowolna liczba instrukcjiExit PropertyiReturnmoże być wyświetlana w dowolnym miejscu procedury i można mieszaćExit PropertyiReturninstrukcje.
Przykład
W poniższym przykładzie użyto instrukcji Set , aby ustawić wartość właściwości.
Class propClass
Private propVal As Integer
Property Prop1() As Integer
Get
Return propVal
End Get
Set(ByVal value As Integer)
propVal = value
End Set
End Property
End Class