[ Pobierz całość w formacie PDF ]
przeznaczona tylko do odczytu (na przykład wartość obliczana) albo tyl-
ko do zapisu (na przykład hasło, które po ustawieniu nie powinno pozo-
stawać dostępne). W celu utworzenia właściwości przeznaczonej tylko
do odczytu należy dodać słowo kluczowe ReadOnly do deklaracji właści-
wości (tuż po słowie kluczowym określającym poziom dostępu) i usunąć
procedurę Set. W celu utworzenia właściwości przeznaczonej tylko do
zapisu należy usunąć procedurę Get i dodać słowo kluczowe WriteOnly.
Te słowa kluczowe nie są niczym nowym były dostępne już w Visual
Basicu .NET 1.0.
Nowe operatory
Testowanie kolejnych części
logiczne umożliwiają
łączenie wielu warun-
wyrażenia warunkowego
ków i pisanie bardziej
zwartego kodu.
W poprzednich wersjach Visual Basica istniały dwa operatory logiczne:
And i Or. W Visual Basicu 2005 wprowadzono dwa dodatkowe operatory:
AndAlso oraz OrElse. Działają one tak samo jak And i Or, ale pozwalają
oszacować tylko jedną część długiego wyrażenia warunkowego.
Jak to zrobić?
W wielu programach trzeba oszacować kilka warunków z rzędu. Często
najpierw sprawdzamy, czy obiekt nie jest pusty, a następnie badamy
jedną z jego właściwości.
82 Rozdział 2: Język Visual Basic
W tym celu musimy używać zagnieżdżonych bloków If, jak w poniż-
szym przykładzie:
If Not MyObject Is Nothing Then
If MyObject.Value > 10 Then
' (robimy coś)
End If
End If
Byłoby miło połączyć te dwa warunki w jednym wierszu:
If Not MyObject Is Nothing And MyObject.Value > 10 Then
' (robimy coś)
End If
Niestety, to nie zadziała, ponieważ VB zawsze testuje oba warunki. In-
nymi słowy, nawet jeśli MyObject jest równy Nothing, VB sprawdzi
drugi warunek i spróbuje pobrać właściwość MyObject.Value, co spo-
woduje wyjątek NullReferenceException.
W Visual Basicu 2005 rozwiązano ten problem dzięki słowom kluczo-
wym AndAlso i OrElse. Kiedy używamy tych operatorów, Visual Basic
nie testuje drugiego warunku, jeśli pierwszy nie jest spełniony. Oto po-
prawiony kod:
If Not MyObject Is Nothing AndAlso MyObject.Value > 10 Then
' (robimy coś)
End If
A co&
& z innymi ulepszeniami języka? W tym rozdziale przedstawiono naj-
ważniejsze innowacje w języku VB. Warto jednak wspomnieć o kilku
innych nowościach, które nie zostały tu opisane:
" Słowo kluczowe IsNot pozwala uprościć niezgrabną składnię. Dzięki
niemu można zastąpić konstrukcję If Not x Is Nothing równo-
ważną instrukcją If x IsNot Nothing.
" Za pomocą funkcji TryCast() można nieco przyspieszyć rzutowanie
typów. Działa ona tak jak funkcje CType() lub DirectCast(), z jednym
wyjątkiem jeśli obiektu nie można przekształcić w żądany typ,
zwracana jest pusta referencja. Zamiast więc sprawdzać typ obiektu,
a potem go rzutować, można od razu użyć funkcji TryCast(), a na-
stępnie sprawdzić, czy zwróciła ona rzeczywistą referencję do obiektu.
Testowanie kolejnych części wyrażenia warunkowego 83
" Zmienne całkowite bez znaku umożliwiają przechowywanie wartości,
które nie mogą być ujemne. Ograniczenie to oszczędza pamięć, po-
zwalając na przechowywanie większych liczb. Liczby bez znaku zaw-
sze były obsługiwane przez .NET Framework, ale obecnie VB 2005
zawiera odpowiednie słowa kluczowe (UInteger, ULong i UShort).
84 Rozdział 2: Język Visual Basic
[ Pobierz całość w formacie PDF ]