Title: VB.NET
1VB.NET
2 Podstawy Visual Basic.NET
- Visual Basic .NET jest jednym z podstawowych
jezyków programowania stosowanych na platformie
.NET - Deklaracja i inicjacja zmiennej odbywa sie za
pomoca pojedynczej instrukcji. - Dim m As StringMama
- Tworzenie nowych obiektów wymaga zdefiniowania
klasy. - Klasa jest typem obiektu, definiujacym
wlasciwosci i metody egzemplarzy obiektów. - Deklaracja zmiennej obiektu polaczenia ma postac
- Dim conn New SqlConnection()
3 Podstawy Visual Basic.NET
- Do tworzenia i inicjalizacji obiektów stosowane
sa konstruktory parametryzowane (akceptujace
argumenty). - Dim command New SqlCommand(strSelect, conn)
- Tablica to grupa zmiennych tego samego typu
zajmujaca ciagly obszar pamieci, do których mozna
odwolywac sie pojedynczo za pomoca indeksów. - Dim tab(5) As String
- Tablice moga miec dynamicznie zmieniany rozmiar
za pomoca instrukcji ReDim. - Chcac zachowac wszystkie dane przechowywane w
tablicy nalezy uzyc slowa kluczowego Preserve.
4 Operatory w Visual Basic.NET
5 Konwersja typów w VB.NET
- W VB.NET argumentem konwersji (rzutowania) typu
jest typ Object
6 Konwersja typów w VB.NET
- Konwersja niektórych typów powoduje utrate czesci
informacji, na przyklad konwertujac dana
zmiennoprzecinkowa na typ calkowity tracona jest
czesc dziesietna. - Przyklad konwersji pobranej wartosci z bazy na
String i przypisanie do elementu tabeli. - dr(4) CStr(reader.GetValue(4))
- W jezyku VB.NET dla wielu typów danych istnieja
metody umozliwiajace konwersje na inny typ. Nazwa
takiej metody zawsze zaczyna sie od To, a konczy
nazwa docelowego typu danych. Przyklad konwersji
dzisiejszej daty systemowej na typ String - Dim data1 As String DateTime.Today.Year.ToStri
ng
7 Procedury i funkcje w VB.NET
- W VB.NET program moze zawierac procedury, funkcje
i zdarzenia (np. OnClick, Page_Load,
OnSelectedIndexChanged). - Procedura definiowana jest slowem kluczowym
- Sub Nazwa_procedury (lista_argumentów)
- ...
- End Sub.
- Zmienna tymczasowa zdefiniowana w bloku procedury
ma zasieg tylko tej procedury. - Z wyjatkiem zmiennej Static, zmienne w bloku
procedury nie przechowuja swojej wartosci
pomiedzy kolejnymi wywolaniami procedury.
8 Procedury i funkcje w VB.NET
- Funkcja, w odróznieniu od procedury, zwraca
wartosc do programu glównego. Wykorzystuje sie do
tego celu instrukcje Return umieszczana w
wewnatrz funkcji. - Deklaracji funkcji ma postac
- Function Nazwa_funkcji (argumenty) As
typ_wyniku - ...
- End Function
- Wywolanie funkcji moze nastapic w dowolnym
miejscu programu, poprzez przypisanie nazwy
funkcji do zmiennej.
9 Procedury i funkcje w VB.NET
- Procedury i funkcje zazwyczaj wymagaja
przekazania dodatkowych informacji w postaci
argumentów. - Argumenty przekazywane sa przez wartosc ByVal lub
przez referencje ByRef (opcja domyslna). - W definicji wywolania procedury lub funkcji mozna
okreslic równiez parametry opcjonalne za pomoca
slowa kluczowego Optional, które moga przyjmowac
wartosci domyslne. - Parametry opcjonalne musza wystepowac jako
ostatnie na lisci argumentów. - Przy wywolywaniu procedury lub funkcji, która
posiada parametry opcjonalne mozna je pominac,
stawiajac w to miejsce przecinek.
10 Procedury i funkcje w VB.NET
- Przyklad deklaracji procedury z parametrem
opcjonalnym. - Sub pro_reader(ByVal sel As String, ByVal obj As
Object, ByVal typ As Int16, Optional ByVal
parametr As String "") - Przyklad wywolania tej procedury. Parametr
opcjonalny jest okreslony i jest ostatnim na
liscie. - pro_reader("pro_program", program, 2, miejsce)
11 Zakres zmiennych w VB.NET
- Na zakres zmiennej maja wplyw trzy czynniki
- miejsce deklarowania zmiennej (blok, procedura,
funkcja, modul, klasa, struktura, przestrzen
nazw), - modyfikator uzyty przy deklaracji (Dim, Private,
Friend, Public), - zakres modulu, klasy lub struktury w którym
zostala zadeklarowana zmienna. - Czas zycia zmiennej jest wyznaczony przez jej
zakres. - Zmienne, których czas zycia jest wiekszy niz jej
zakres nazywane sa zmiennymi statycznymi (Static)
12 Instrukcje sterujace w VB.NET
- If TestPorównujacy Then Jedna lub wiele
instrukcjiEnd If - If TestPorównujacy Then Instrukcja
- If TestPorównujacy Then Jedna lub wiele
instrukcjiElse Jedna lub wiele instrukcjiEnd
If - Instrukcje zagniezdzoneIf TestPorównujacy
Then Jedna lub wiele instrukcjiElse If
TestPorównujacy Then Jedna lub wiele
instrukcji Else Jedna lub wiele instrukcji
EndifEnd If
Instrukcje warunkowe
13- W przypadku instrukcji zagniezdzonych lepiej
uzywac struktury -
- Instrukcja moze zawierac dowolna liczbe klauzul
ElseIf. Uzycie klauzuli Else jest w tym przypadku
opcjonalne - Warunki sprawdzane sa po kolei, az do napotkania
pierwszego prawdziwego, dlatego istotna jest
kolejnosc wyrazen warunkowych.
If warunek1 Then instrukcje, gdy warunek1 jest
prawdziwy ElseIf warunek2 Then instrukcje, gdy
warunek2 jest prawdziwy ElseIf warunek3
Then instrukcje, gdy warunek3 jest
prawdziwy ........ Else instrukcje, gdy
wszystkie warunki sa falszywe End If
14 Instrukcja Select Case
Select Case wyrazenie Case wartosc (lub
wartosci oddzielone przecinkami) Jedna lub wiele
instrukcji Case Is relacja Jedna lub wiele
instrukcji Case wyrazenie1 To
wyrazenie2 Jedna lub wiele instrukcji Case
Else Jedna lub wiele instrukcji End Select
- Warunki Case sprawdzane sa po kolei po pierwszym
spelnieniu warunku Case i wykonaniu zwiazanych z
nim instrukcji nastepuje wyjscie z konstrukcji.
15 Petle w VB.NET
- Petle sa zbiorem instrukcji, które nalezy wykonac
wielokrotnie. - Rozróznia sie dwie podstawowe struktury petli
- Do ... Loop
- For ... Next
- Petla Do ... Loop moze miec struktury
Do If warunek Then Exit Do instrukcje Loop
16 Petla Do... Loop w VB.NET
Do Until warunek petli instrukcje Loop Do
Jedna lub wiele instrukcji Loop Until warunek
petli
- Wyjscie z petli nastepuje w chwili, gdy wpisany
warunek przyjmuje wartosc True.
17 Petla Do... Loop w VB.NET
Do While warunek petli Jedna lub wiele
instrukcji Loop Do Jedna lub wiele
instrukcji Loop While warunek petli
- Petla Do While...Loop to petla, w której wpisane
instrukcje powtarzane sa dopóki dany warunek ma
wartosc True. - Mozna przerwac petle wczesniej przy pomocy
komendy Exit Do
18 Petla For... Next w VB.NET
For ZmiennaLicznik WarPoczatkowa To WarKoncowa
Step WarKroku Jedna lub wiele instrukcji
Next Zmienna Licznik
- Umieszczanie nazwy zmiennej licznikowej po
instrukcji Next nie jest konieczne. - Mozna przerwac petle wczesniej przy pomocy
komendy Exit For
19 Petla For Each... Next w VB.NET
For Each element In grupa instrukcje Exit
For instrukcje Next element
- Petla For Each ... Next pozwala wykonac fragment
kodu dla kazdego obiektu nalezacego do tablicy
lub kolekcji obiektów. - Kolekcja nazywamy uporzadkowany zbiór powiazanych
ze soba obiektów, do którego mozemy odwolywac sie
jak do pojedynczego obiektu.
20 Kolekcje w VB.NET
- Kolekcja posiada atrybut Count, którego wartosc
odpowiada liczbie elementów kolekcji. - Kolekcja posiada metody, pozwalajace dodac oraz
usunac obiekt z kolekcji - metoda Add( ) - dodanie obiektu do kolekcji,
- metoda Remove ( ) - usuwanie obiektu z kolekcji,
- Mozemy tworzyc wlasne kolekcje (obiekty typu
Collection) oraz dodawac i usuwac obiekty do
kolekcji predefiniowanych (np.. kolekcji Items).
21 Zdarzenia w VB.NET
- Zdarzenia sa to dzialania jakie moga wystapic w
danej aplikacji, po której trzeba podjac jakas
akcje. - Kazde zdarzenie powinno zawierac procedure
obslugi tego zdarzenia (event handler). - Skladnia procedury zdarzeniowej jest identyczna
jak w przypadku normalnych procedur, ale róznica
pojawia sie w liscie parametrów.
22 Zdarzenia w VB.NET
- Przyklad deklaracji procedury wyszukiwania
wycieczek odpowiadajacej na zdarzenie klikniecia
przycisku. - Sub znajdz_wycieczke(ByVal obj As Object, ByVal e
As EventArgs) Handles btznajdz.Click - Handles okresla do jakiego obiektu i zdarzenia
odnosi sie ta procedura. - Gdy klikniety zostanie przycisk btznajdz,
wywolywana jest procedura znajdz_wycieczke. - Argument obj jest obiektem, który wywolal
zdarzenie, natomiast EventArgs zawiera dane
wlasciwe dla zdarzenia, które zaszlo.
23 Obsluga bledów w VB.NET
- Do obslugi bledów stosowane sa instrukcje try i
catch - Uzycie instrukcji try informuje, ze pewien blok
kodu nalezy wykonac próbnie. W takim przypadku,
jesli jakikolwiek fragment kodu zapisany wewnatrz
tej instrukcji spowoduje zgloszenie bledu, to nie
doprowadzi on do przerwania wykonywania aplikacji
i wyswietlenia komunikatu, lecz umozliwi
rozwiazanie zaistnialego problemu. - Instrukcja try oraz inne instrukcje uzywane wraz
z nia sa wspólnie nazywane strukturalna obsluga
wyjatków.
24 Obsluga bledów w VB.NET
- Cala skladnia sklada sie z instrukcji try, po
której umieszczany jest chroniony blok kodu.
Nastepnie umieszczane sa instrukcje catch i
finally. - Try
- instrukcje kodu...
- Catch
- obsluga wyjatku
- End try
- Zglaszanie wyjatków pozwala na przechwytywanie
bledów zanim doprowadza one do przerwania
wykonywania aplikacji.
25 Visual Basic.NET
- Visual Basic.NET wprowadza zmiany w stosunku do
VB w nastepujacych dziedzinach - nowych mozliwosci programowania obiektowego,
- wiekszych mozliwosci tworzenia interfejsów www,
- strukturalna obsluge jezyka i tworzenie watków,
- dostosowanie do wspólnej specyfikacji CLS oraz
wspólnego systemu typów CTS, - eliminacje przestarzalych elementów skladni
starszych wersji VB
26 Nowe mozliwosci programowania obiektowego VB.NET
- Nowych mozliwosci programowania obiektowego w
VB.NET obejmuja - pelne dziedziczenie klas i polimorfizm
- parametryzowane konstruktory - jest to mozliwosc
przekazywania informacji do klasy w chwili
tworzenia jej instancji, w celu ustawienia jej
wlasciwosci lub modyfikacji metod, - przeslanianie elementów umozliwiajace
modyfikowanie wlasciwosci i metod klasy bazowej w
podklasach, - przeladowywanie nazw funkcji,
- wspóldzielenie wlasciwosci lub metod przez
wszystkie instancje danej klasy.
27 Przystosowanie projektów do VB.NET
28 Tworzenie projektu w srodowisku VB.NET
- Tworzenie projektu w VB.NET polega na zbudowaniu
diagramu klas projektu, np. z wykorzystaniem
jezyka UML (Unified Modeling Language) - Diagram klas pozwala opisac funkcjonalnosc
róznych klas i podzielic program na poszczególne
zadania oraz zawiera opis uzytkowników programu
(aktorów)
Dodaj towar
Usun towar
Uzytkownik
Baza danych
Pobierz dane z bazy
29 Tworzenie projektu w srodowisku VB.NET
- Diagram klas nalezy zamienic na projekt klas, a
wiec okreslic ich atrybuty, metody i zdarzenia
przykladowo - definiujemy klase Uzytkownik o atrybutach nazwa,
haslo i metodzie autoryzuj, - definiujemy klase Towar o atrybutach numer,
nazwa, dostawca, cena i metodach dodaj, usun,
pobierz, sprawdz - Projekt klas opisuje jedynie ich funkcjonalnosc
(ich interfejs) a nie ich wewnetrzna budowe. - Kolejnym etapem jest zdefiniowanie klas
najnizszego poziomu
30 Tworzenie projektu w srodowisku VB.NET
- Klasy dodaje sie albo w oknie Solution Explorera
albo w menu Projekt opcja Add Class.. - zostanie wyswietlone okno dialogowe Add New Item
- w okienku Templates nalezy wybrac Class, w polu
Name wpisac jej nazwe i uruchomic opcje Open - zostanie wyswietlone okno edytora kodu
zawierajace deklaracje klasy - Public Class Nazwa_klasy
- ..................
- End Class
- W ciele klasy nalezy zdefiniowac jej atrybuty
(zmienne), metody i zdarzenia.
31 Tworzenie projektu w srodowisku VB.NET
- Wlasciwosci w Visual Basic.NET sa tworzone w
definicjach klas za pomoca slowa kluczowego
Property - wlasciwosci tylko do odczytu (read-only)
posiadaja funkcjonalnosc Get, - wlasciwosci tylko do zapisu (write-only)
posiadaja funkcjonalnosc Set, np. - Public Class KomunikatMsg
- Private strKomunikat as String
- Public Property MsgText( ) As String
- Get
- MsgText strKomunikat
- End Get
32 Tworzenie projektu w srodowisku VB.NET
- Set(ByVal Value As String)
- strKomunikat Value
- End Set
- End Property
- End Class
- W celu odczytania wartosci strKomunikat z obiektu
MyKomunikat klasy KomunikatMsg wykorzystujemy
wlasciwosc MsgText( ) - strValue MyKomunikat.MsgText( )
- W celu przypisania do obiektu MyKomunikat
okreslonej wartosci wykorzystujemy równiez
wlasciwosc MsgText( ) - MyKomunikat.MsgText( ) Witaj
33 Tworzenie projektu w srodowisku VB.NET
- Polecenia Get i Set pozwalaja odczytywac i
ustawiac wartosci pól prywatnych - Zapisywanie stanu obiektu do pliku tekstowego i
jego odczytywanie jest okreslane slowem kluczowym
persistence. - Obiekty z modyfikatorem persistence sa obiektami
trwalymi ich stan jest aktualna wartoscia tego
obiektu. - Visual Basic.NET obsluguje funkcje dziedziczenia.
- Klasa pochodna wskazuje uzywana przez siebie
klase bazowa slowem Inherits - Public Class Komunikat_1Msg
- Inherits KomunikatMsg
- End Class
34 Tworzenie projektu w srodowisku VB.NET
- Do zapisywania danych klasy do pliku sluzy metoda
Write( ) - Public Function Write ( ) As Boolean
- Dim MsgFile As Stream
- Write True
- MsgFile File.Open(msg.bin,
FileMode.Create) - MsgFile.Close( ) //zamkniecie utworzonego
pliku - End Function
- Do automatycznego zapisywania stanu obiektu przed
jego zniknieciem sluzy metoda Dispose ( ) - Public Sub Dispose ( )
- Write ( )
- End Sub
35 Tworzenie projektu w srodowisku VB.NET
- Do odczytywania stanu obiektu w chwili tworzenia
nowej jego instancji sluzy metoda Read( ) - Public Function Read ( ) As Boolean
- Dim MsgFile As Stream
- Read True
- MsgFile File.Open(msg.bin,
FileMode.Open) - MsgFile.Close( ) //zamkniecie otwartego do
odczytu pliku - End Function
- Do tworzenia nowej instancji klasy Komunikat_1Msg
wykorzystywana jest metoda New ( ) - Jesli zdefiniujemy metode New ( ) i z jej wnetrza
wywolamy metode Read ( ) to obiekt odczyta
zapisany stan obiektu (o ile zapis zostal
wczesniej dokonany).
36 Dziedziczenie w VB.NET
- Definicja metody New ( ) ma postac
- Public Sub New ( )
- MyBase.New( )
- ...................
- Read ( )
- End Sub
- Wewnatrz podklasy odwolanie do klasy bazowej
realizowane jest przy uzyciu slowa kluczowego
MyBase - Formularz Windows jest modulem klas dziedziczacym
cechy formularza z klasy bazowej
System.Windows.Forms platformy .NET lub z innego
formularza.
37 Budowa obiektu MsgReader
- Definicja klasy MsgReader ma postac
- Class MsgReader
- Inherits System.Windows.Forms.Form
- Public Sub New( )
- MyBase.New() //tworzenie obiektu
formularza - MsgReader Me
- End Sub
- End Class
- Utworzony formularz MsgReader sluzy do
przegladania i edycji wiadomosci przechowywanych
w obiekcie klasy Komunikat_1Msg
38 Tworzenie okna formularza
- Utworzony formularz MsgReader jest formularzem
pustym, wiec nalezy dodac do niego kontrolki. - Wszystkie kontrolki znajdujace sie wewnatrz
obiektu okno formularz deklarowane sa jako pola
inicjalizowane metoda InitializeComponent ( ). - Po dodaniu kontrolki metoda New automatycznie
ustawiane sa wlasciwosci niezbedne do okreslenia
charakterystyki i pozycji kontrolki. - Kontrolki ukazujace sie w oknie formularza naleza
do zbioru kontrolek dodanego metoda Add( ) oraz
zdefiniowane w klasie bazowej.
39 Tworzenie okna formularza
- Poniewaz klasa MsgReader dziedziczy z klasy
bazowej System.Windows.Forms.Form, dostaje
automatyczny dostep do zbioru kontrolek (controls
collection) - Do przegladania i edycji tekstu wykorzystywana
jest kontrolka wieloliniowego edytora (TextBox
control) - W celu powiazania formularza MsgReader z obiektem
klasy Komunikat_1Msg nalezy do metody New( )
klasy MsgReader dodac parametr zawierajacy
referencje do obiektu klasy Komunikat_1Msg
parametr ten jest zapisywany do pola klasy
MsgReader i moze byc uzywany wewnatrz obiektu.
40- Public Class FormularzVB
- Inherits System.Windows.Forms.Form
- ........................................
- Private Sub InitializeComponent()
- Me.TextBox New System.Windows.Forms.Text
Box() - Me.TextBox.AcceptsReturn True
- Me.TextBox.Multiline True
- Me.TextBox.Name "TextBox"
- ...................
- Me.TextBox.Text ""
- Me.Controls.AddRange(New System.Windows.Forms.Cont
rol() Me.TextBox) - Me.Text "Zadanie"
- End Sub
- End Class
41 Wyswietlanie pola tekstowego
- Private Msg AS Komunikat_1Msg
- Public Sub New(ByRef Msg AS Komunikat_1Msg)
- MyBase.New() //tworzenie obiektu
formularza - MsgReader Me
- Me.Msg Msg //przypisanie zmiennej wewnatrz
klasy - // MsgReader referencji do zmiennej Msg klasy
Komunikat_1Msg InitializeComponent( ) - TextBox.Text Msg.MsgText( )
- End Sub
- Do wyswietlenia zawartosci pola tekstowego
wykorzystujemy wlasciwosc Text kontrolki TextBox,
zainicjalizowanej wartoscia MsgText obiektu klasy
Komunikat_1Msg
42 Zdarzenia OK i Anuluj
- Zdarzenia obsluguja procedury zdarzeniowe zawarte
w klasie MsgReader - Protected Sub btnOK_Click(ByVal sender As Object,
_ ByVal e As System.EventArgs) Handles
btnOK.Click - Msg.MsgText TextBox.Text() // zapisanie
wiadomosci - ..............................
- Close() // zamkniecie formularza i jego
zasobów - End Sub
- Protected Sub btnCancel_Click(ByVal sender As
Object, _ - ByVal e As System.EventArgs) Handles
btnCancel.Click - .............................
- End Sub
- Zdarzenia obsluguja procedury zdarzeniowe zawarte
w klasie MsgReader
43 Uruchamianie aplikacji w Visual Basic.NET
- Domyslnie aplikacje Visual Basic.NET uruchamiane
sa przez wywolanie instancji domyslnego
formularza (np. MsgReader). - Jest to stosowane wtedy, gdy aplikacja calkowicie
opiera sie na formularzu glównym oraz gdy metoda
New( ) nie pobiera zadnych argumentów. - W innych przypadkach punktem startowym jest
metoda main( ), zawarta w module Main, w postaci - Sub main ( )
- System.Windows.Forms.Application.Run
- (New MsgReader(New Komunikat_1Msg ( ) ) )
- End Sub
44 Dziedziczenie w VB.NET
- Kod tworzenia formularza bedzie mial postac
- Tworzenie nastepnego formularza moze bazowac na
kolejnej klasie pochodnej
Imports System.ComponentModel Imports
System.Drawing dziedziczona z klasy Import
System.WinForms System.WinForms.Form Public
Class Form1 Inherits System.WinForms.Form
Imports System.ComponentModel Imports
System.Drawing Import System.WinForms Public
Class Form2 Inherits Form1
45 Dziedziczenie w VB.NET
- Utworzony formularz bedacy instancja klasy Form2
moze posiadac dwa zestawy kontrolek - utworzonych za pomoca modulu Visual Designer
- oddziedziczonych z formularza Form1.
- Dziedziczony jest zarówno wyglad kontrolek jak i
kod obslugujacy kontrolki. - Dziedziczenie jest mozliwe wszystkich klas
utworzonych w jakimkolwiek jezyku platformy .NET. - W VB. NET nie wystepuje dziedziczenie
wielokrotne, dostepne w C i niektórych innych
jezykach obiektowych.
46 Parametryzowane konstruktory w VB.NET
- Podczas tworzenia instancji obiektu moga byc do
niego przekazane parametry, które natychmiast
modyfikuja zachowanie sie tego obiektu. - W poprzednich wersjach VB zamiast konstruktorów
stosowane byly zdarzenia zachodzace podczas
tworzenia instancji, takie jak - Class Initialize dla klas,
- Form Load dla formularzy, do których nie mogly
byc przekazywane zadne parametry. - Przykladowy kod w VB mialby wiec postac
Dim objNowiPracownicy As New Pracownicy objNowiPra
cownicy.PracownicyID (125-55-2345)
47 Parametryzowane konstruktory w VB.NET
- Przykladowy kod w VB.NET bedzie mial postac
- Konstruktor w VB.NET nie jest zdarzeniem, ale
procedura, wiec jest okreslany poprzez instrukcje
Sub New, ma zakres Public i moze miec argumenty. - Fragment kodu konstruktora ma przykladowa postac
- W tym przypadku przy tworzeniu kazdej instancji
klasy wymagany jest argument.
Dim objNowiPracownicy As New Pracownicy
(125-55-2345)
Sub New (sPracownicyID AS String) kod konstruktora
48 Parametryzowane konstruktory w VB.NET
- Konstruktory uruchamiane sa automatycznie podczas
tworzenia instancji. - Wykorzystanie konstruktora do tworzenie naglówka
formularza Form2 - Tworzymy nowy projekt formularza Windows w
srodowisku VB. NET - Form1 i wstawiamy do niego
przycisk uruchamiajacy formularz Form2, - Wstawiamy drugi formularz (domyslnie Form2) opcja
- Project_SYMBOLAdd Windows Form
- Dla tego formularza zostanie automatycznie
utworzony konstruktor o nazwie Sub New w module
Class formularza.
49 Parametryzowane konstruktory w VB.NET
- Domyslny konstruktor ma postac
- Zmieniamy kod konstruktora nastepujaco
Public Sub New ( ) MyBase.New Form2 Me End Sub
Public Sub New (ByVal sTitlebarCaption As String
) MyBase.New Form2 Me me.Text
sTitlebarCaption End Sub
50 Parametryzowane konstruktory w VB.NET
- Wracamy do Form1 i dwukrotnie klikajac otwieramy
kod zdarzenia, które wywoluje Button1_Click w
edytorze kodu do którego wstawiamy kod - Zawiera on parametr wymagany przez instrukcje
Sub New. - Utworzona przyciskiem w Form1 instancja
formularza Form2 bedzie miala nazwe podana w
parametrze.
Dim frmNewForm As New Form2(Formularz
drugi) frmNewForm.Show( )
51 Przeslanianie nazw w VB.NET
- VB.Net obsluguje pelne przeslanianie metod i
wlasciwosci klas bazowych. - Logika przeslaniania moze istniec zupelnie
niezaleznie od klasy bazowej, a metoda bazowa
moze byc wywolana z klasy przeslaniajacej, ale
jej dzialanie bedzie tylko w zasiegu tej klasy. - Klasa bazowa moze zastrzec, ze dana wlasciwosc
lub metoda ma byc przeslonieta (lub nie moze byc
przeslonieta) w klasie potomnej
52 Przeslanianie nazw w VB.NET
- Przeslanianie jest kontrolowane za pomoca
nastepujacych slów kluczowych - Overridable - element klasy bazowej moze byc
przesloniety w klasach potomnych, - Overrides - element klasy bazowej jest
przesloniety przez element o tej samej nazwie w
klasie potomnej, - NotOverridable - element klasy bazowej nie moze
byc przesloniety w klasach potomnych (opcja
domyslna), - MustInherit - atrybut deklaracji klasy bazowej
okreslajacy, ze instancja klasy potomnej nie moze
byc tworzona bezposrednio, ale musi zostac
oddziedziczona,
53 Przeslanianie nazw w VB.NET
- MustOverride - dostepne jedynie dla klas
zadeklarowanych jako MustInherit. Oznacza, ze
wszystkie klasy dziedziczace dany element klasy
bazowej musza go przeslaniac. - Element oznaczony jako MustOverride zapewnia
jedynie interfejs. Nie sa dopuszczalne nawet
wiersze instrukcji End Sub oraz End Function. - Rozpatrujemy klase bazowa, w której
- istnieja wlasciwosci publiczne, inicjalizowane
przy pomocy konstruktora, - klasy potomne moga implementowac wlasne wersje
elementów (Overridable).
54 Przeslanianie nazw w VB.NET
Public Class Klient Public Name As
String Public Active As Boolean Public Sub New
(ByVal sName as String, ByVal bActive As
Boolean) Name sName Active bActive End
Sub klasa potomna moze zaimplementowac wlasna
wersje Public Overridable Sub CheckStatus (
) Debug. WriteLine (Name Name) Debug.
WriteLine (Active Active) End Sub End Class
- Domyslny konstruktor ma postac
55 Przeslanianie nazw w VB.NET
- Tworzymy klase potomna, w której
- istnieja wlasciwosci publiczne,
- tworzymy konstruktor klasy podklasy,
- wywolujemy konstruktor klasy bazowej,
- inicjalizujemy zmienne podklasy,
- przeslaniamy metody klasy bazowej,
- wywolujemy wersje metod z klasy bazowej,
- wypisujemy wlasciwosci podklasy.
56 Przeslanianie nazw w VB.NET
Public Class KlientDocelowy Inherits
Klient Public DateToContact As Date deklaracja
dodatkowa Public Sub New (ByVal sName as String,
ByVal bActive As Boolean, ByVal datDateToContact
As Date ) konstruktor podklasy
MyBase.New(sName, bActive) konstruktor klasy
bazowej DateToContact datDateToContact
dodatkowa inicjalizacja End Sub przesloniecie
metody klasy bazowej Public Overrides Sub
CheckStatus ( ) MyBase.CheckStatus ( ) wywolanie
wersji metody klasy bazowej Debug. WriteLine
(Kontakt DateToContact) End Sub End Class
- Domyslny konstruktor ma postac
57 Przeslanianie nazw w VB.NET
- Tworzymy instancje klasy potomnej, co wymaga
przeslania parametrów inicjalizujacych jej
wlasciwosci i wywolujemy metode CheckStatus -
- Zostanie wyswietlone okno
Dim objNewKlientDocelowy As New KlientDocelowy
(Siemens, True, 22/11/2003) objNewKlientDocelo
wy. CheckStatus
Debug Name Siemens //generowane metoda
klasy bazowej Active True
//generowane metoda klasy bazowej Kontakt
22/11/2003 //generowane metoda klasy potomnej
58 Przeladowywanie nazw funkcji w VB.NET
- Przeladowywanie nazw funkcji polega na
zdefiniowaniu kilku funkcji o tej samej nazwie
ale róznych argumentach - W VB.NET realizowane to jest za pomoca slowa
kluczowego Overloads, np.
Overloads Sub Display (ByVal number as
Integer) // cialo funkcji End Sub Overloads Sub
Display (ByVal aString as String) // cialo
funkcji End Sub
59 Elementy wspóldzielone w VB.NET
- W VB.NET istnieje mozliwosc tworzenia wlasciwosci
i metod wspóldzielonych przez wszystkie aktywne
instancje w klasie. - Jest to odpowiednik elementów statycznych jezyka
C - Do tworzenia elementów wspóldzielonych
wykorzystuje sie slowo kluczowe Shared, np. - Zmiana wlasciwosci w jednej instancji wywoluje
zmiane tej wlasciwosci we wszystkich instancjach
danej klasy.
Public Shared CommonName As String
60 Interfejsy WWW w VB.NET
- Czescia platformy .NET sa formularze Web,
dzialajace w VB.NET tak samo, jak w kazdym innym
jezyku platformy. - Uslugi Web zapewniaja mechanizm umozliwiajacy
programom komunikowanie sie w Internecie za
pomoca protokolu SOAP, który nie zalezy od
wywolywanej technologii. - Komponent uslugi Web zawiera metody
- widoczne w interfejsie uslugi Web, oznaczone za
pomoca slowa kluczowego WebMethod, - przeznaczone wylacznie do uzytku wewnetrznego.
61 Strukturalna obsluga jezyka w VB.NET
- Nowe mozliwosci skladni jezyka VB.NET obejmuja
- strukturalna obsluge wyjatków,
- tworzenie watków.
- Skladnia obslugi bledów i wyjatków ma postac
Try // Kod programu Catch // fragment kodu
zawierajacy komunikat o bledzie, wykonywany, //
gdy w kodzie po instrukcji Try wystapil
blad Finally // fragment kodu wykonywany
niezaleznie od tego czy po Try wystapil blad czy
nie End Try
62 Strukturalna obsluga jezyka w VB.NET
- Kod po instrukcji Try moze zawierac instrukcje
Throw, która wymusza blad (i wykonanie sekcji
kodu po Catch) - VB.NET obsluguje równiez instrukcje On Error oraz
obiekt Err. - VB. NET obsluguje swobodne tworzenie watków.
- W celu rozpoczecia nowego watku typ obiektu
deklarowany jest jako Thread, a podczas tworzenia
instancji przekazywany jest adres, który ma byc
wykonany w watku. - Klasa Thread posiada rózne metody wstrzymywania,
zawieszania, przywracania, usuwania i innych
operacji dokonywanych na watku.
63 Typy zmiennych stosowane w VB.NET
- Poniewaz podstawa platformy .NET jest wspólny
system plików CTS, w VB.NET wprowadzono
nastepujace zmiany w stosunku do typów danych
stosowanych w VB - Typy calkowite Integer ? Short (2 bajty)
- Long ? Integer (4 bajty)
- ------ ? Long (8 bajtów).
- Przy przenoszeniu kodu aplikacji nastepuje
automatyczna konwersja starych typów danych na
nowe - Przy wklejaniu dodatkowego kodu nalezy samemu
dokonac zmiany typów. - Typ Currency ? Decimal (12 bajtów) lub ? Long
64 Typy zmiennych stosowane w VB.NET
- Wprowadzony jest typ Char (2 bajty),
przechowujacy wartosci znaków Unicode - Typ Variant nie jest uzywany. Moze byc zastapiony
typem Object, gdyz na platformie .NET zarówno
wartosci calkowite jak i lancuchy znaków
traktowane sa jako obiekty. - Do obslugi lancuchów o stalej dlugosci stosowana
jest klasa FixedLengthString wykorzystywana w
deklaracji - Typ Data nie jest przechowywany w typie Double,
ale uzywa wewnetrznie 8-bitowego typu wartosci
integer.
Dim sFixedLengthString As New VB6.FixedLengthStrin
g (18)
65 Zmiany wprowadzone w VB.NET
- VB.NET nie obsluguje domyslnych wartosci i metod.
- W VB6 w instrukcji przypisania do obiektów
stosowana byla instrukcja Set, w VB. NET nie sa
uzywane wlasciwosci domyslne, a wiec instrukcja
Set jest zbedna. - Przy wlasnosciach tylko do odczytu/zapisu nalezy
deklaracje wlasciwosci poprzedzic slowem ReadOnly
(procedura Get..End Get) lub WriteOnly (procedura
Set..End Set)
strName txtName.Text ( w VB6 strName
txtName) strName rsRecordSet.Fields
(Name).Value
txtCity txtNewCity ( w VB6 Set txtCity
txtNewCity
66 Zmiany wprowadzone w VB.NET
- Kompilator VB.NET zawsze wymaga uzycia nawiasów,
nawet dla list argumentów typu Null, np.. - W VB. NET wszystkie parametry na liscie
argumentów maja domyslne ustawienie ByVal - VB. NET nie dopuszcza deklaracji róznych typów w
jednym wierszu, np..
MsgBox (Witaj) ( w VB6 MsgBox Witaj ) Dim
sDate As String sDate Date( ) ( w VB6 sDate
Date )
Dim strImie, strNazwisko As String w VB6 Dim
strImie As String, strNazwisko As String, wiek As
Integer
67 Zmiany wprowadzone w VB.NET
- VB. NET dopuszcza w deklaracji inicjalizacje
zmiennych - W deklaracji tablicy w VB6 liczba w nawiasie
oznaczala indeks ostatniego elementu - Podobnie, w deklaracji tablicy w VB.NET liczba w
nawiasie oznacza indeks ostatniego elementu - W VB.NET nie stosuje sie tablic zaczynajacych od
indeksu 1
Dim strNazwisko As String Kowalski
Dim strNazwisko (10) As String tablica
11-elementowa (0 -10)
Dim strNazwisko (10) As String tablica
11-elementowa (0 - 10)
68 Zmiany wprowadzone w VB.NET
- W VB.NET mozna równiez w deklaracji tablic
dokonywac ich inicjalizacji (analogicznie jak
zmienne) - Odwolania maja postac strImie(0), strImie(1),
strImie(2), - W VB6 formularze ladowane byly w chwili
pojawienia sie pierwszego odwolania do nich. W
VB.NET formularze musza byc formalnie deklarowane
i ladowane jak inne obiekty, np..
Dim strImie (2) As String (Ola, Tomek,
Basia)
Dim frmNewForm As New Form2 ( ) frmNewForm.Show (
)
69 Zmiany wprowadzone w VB.NET
- W VB.NET wiele slów kluczowych zostalo zastapione
przez elementy klas wspóldzielonych platformy
.NET, np. - circle, line - przestrzen nazw System.Drawing.Grap
hics - sgn, sqr, atn - przestrzen nazw System.Math,
- lset, rset - przestrzen nazw System.String,
- rnd, round - przestrzen nazw Microsoft.VisualBasic
. - Compatibility.VB6
- W VB6 operatory and, or, xor, not sa uzywane
zarówno w dzialaniach bitowych jak i w operacjach
boolowskich - W VB.NET operatory and, or, xor, not sa
zastrzezone wylacznie do operacji boolowskich w
arytmetyce bitowej stosowane sa operatory BitAnd,
BitOr, BitXor, BitNo
70 Zmiany wprowadzone w VB.NET
- W VB6 typy definiowane sa przy pomocy slów
kluczowych Type .... End Type i sa publicznie
dostepne. - W VB.NET zamiast typów definiuje sie struktury
slowami Structure....End Structure. - Kazdy element struktury musi byc zadeklarowany
slowami Dim, Public, Protected, Friend,
Protected Friend, Private, np..
Structure klient public klientID As Integer Dim
klientNazwisko As String Private klientStatus As
Boolean End Structure
71 Zmiany wprowadzone w VB.NET
- W VB6 zmienna moze byc zadeklarowana w dowolnym
miejscu procedury (równiez wewnatrz instrukcji
warunkowej lub petli) i niezaleznie od
lokalizacji deklaracji ma pelen zasieg procedury. - W VB.NET zmienne deklarowane w bloku kodu
ograniczonym instrukcjami End, Loop lub Next sa
dostepne tylko w tym bloku, wiec maja zasieg
bloku, ale - zachowuja swoja wartosc po wyjsciu z bloku,
- nie mozna sie do nich odwolac spoza bloku.
- VB.NET obsluguje parametry opcjonalne, ale nie
obsluguje funkcji If Missing, wiec parametry
opcjonalne wymagaja wartosci domyslnych.
72 Zmiany wprowadzone w VB.NET
- W VB.NET w zlozonych instrukcjach warunkowych,
jesli pierwszy warunek jest spelniony, to
nastepne nie sa sprawdzane, wiec nie powinny
zawierac zadnych czynnosci (np.. inicjalizacji). - Obiekt Debug dostepny jest teraz w przestrzeni
nazw System.Diagnostic.Debug, a jego metoda Print
zostala zastapiona przez cztery metody Write,
WriteIf. WriteLine, WriteLineIf. - Zmienione sa opcje formatowania lancuchów znaków
i analizy liczb oraz wprowadzona inkrementacja i
dekrementacja zmiennych. - VB.NET nie obsluguje wielu slów kluczowych VB6,
m.in.. takich jak GoTo, Let, Option Base n itp..
73 Przystosowanie projektów do VB.NET
- Przystosowanie projektów wykonywanych w VB6 do
VB.NET zawarte jest w bibliotece dostepnej pod
adresem - Fundamentalna technologia platformy .NET uzywana
przez uslugi Web jest protokól SOAP. - Pakiet narzedziowy SOAP dostepny jest pod
adresem
http//msdn.microsoft.com/library/techart/vb6tovbd
otnet.htm
http//msdn.microsoft.com/xml/general/toolkit_intr
o.asp
74 Kontrolki VB.NET
- Po wygenerowaniu nowego projektu Windows Control
Library kontrolki ActiveX automatycznie
dziedzicza wlasnosci po klasie - System.Windows.Forms.UserControl.
- Klasa ta w postaci
-
- dostarcza podstawowe wlasciwosci i zdarzenia
zwiazane z kontrolkami. Jest ona klasa bazowa do
tworzenia wlasnych kontrolek
Public Class UserControl1 Inherits
System.Windows.Forms.UserControl End Class
75 Kontrolki VB.NET
- Mozna stworzyc kontrolki dziedziczace wlasnosci
po innym komponencie, np. CheckBox - Po wykonaniu tej zmiany tracimy mozliwosc
bezposredniego edytowania kontrolki na ekranie
'Design'. - Mozna za pomoca operacji Drag and Drop wprowadzic
na ten ekran inne kontrolki ale mozna je
obslugiwac tylko recznie.
Public Class UserControl1 Inherits
System.Windows.Forms.CheckBox End Class
76 Zdarzenia VB.NET
- Zdarzenia deklaruje sie w nastepujacy sposób
- Metoda RaiseEvent sluzy do wywolania zdarzenia w
momencie klikniecia na kontrolke.
Public Class UserControl1 Inherits
System.Windows.Forms.CheckBox Public Event
MojeZdarzenieKlikniecia() Protected Overrides
Sub OnClick(ByVal e As System.EventArgs)
RaiseEvent MojeZdarzenieKlikniecia() End Sub
End Class
77 Zdarzenia VB.NET
- Metody typu Overrides których nazwa zaczyna sie
od liter On pozwalaja nadpisac obsluge zdarzenia
zdefiniowana w klasie bazowej. - W celu wywolania obslugi zdarzenia z klasy
bazowej modyfikujemy metode w nastepujacy sposób
- Mozna najpierw wywolac metode MyBase.OnClick(e) a
pózniej napisac obsluge zdarzenia, ale zmienia to
wynik dzialania procedury.
Protected Overrides Sub OnClick(ByVal e As
System.EventArgs) RaiseEvent MojeZdarzenieKliknie
cia() MyBase.OnClick(e) End Sub
78 Zdarzenia VB.NET
- Zdarzenia w aplikacji mozna obslugiwac dwiema
metodami - Pierwsza metoda polega na wykorzystaniu slowa
kluczowego Handles przy deklaracji metody. Slowo
to informuje kompilator, ze metoda ta bedzie
wykorzystana do obsluzenia danego zdarzenia, np
Private Sub UserControl11_Click(ByVal sender As
Object, ByVal e As System.EventArgs) _ Handles
UserControl11.Click MsgBox("Nastapilo
klikniecie!", MsgBoxStyle.Information) End Sub
79- Druga polega na wykorzystaniu metody AddHandler i
RemoveHandler, co pozwala na podlaczenie danej
metody do obslugi zdarzenia w sposób dynamiczny,
np
Public Sub PodlaczObsZdarzenia() AddHandler
UserControl11.Click, AddressOf MojaObslugaklikniec
ia End Sub Private SubMojaObslugaklikniecia(ByVa
l obSend As Object, ByVal e As System.EventArgs)
MsgBox("Nastapilo klikniecie!",
MsgBoxStyle.Information) End Sub Public Sub
OdlaczObsZdarzenia() RemoveHandler
UserControl11.Click, AddressOf MojaObslugaklikniec
ia End Sub
80 Deklaracje metod w VB.NET
- Metoda która podlaczamy musi miec wlasciwe
parametry do obsluzenia danego zdarzenia. - Pojawienie sie dziedziczenia i polimorfizmu w
Visual Basic.Net spowodowalo pojawienie sie
wiekszej róznorodnosci w deklarowaniu metod. - W Visual Basic.Net mamy o wiele wieksze
mozliwosci decydowania o dostepie do elementów
danej klasy, zwlaszcza w przypadku, kiedy
tworzymy hierarchiczna strukture klas.
81 Deklaracje metod w VB.NET
- Z wykorzystaniem listy atrybutów attrlist.
Definicja funkcji w VB.NET wyglada w tym
przypadku nastepujaco
ltattrlistgt Overloads Overrides
Overridable NotOverridable MustOverride
Shadows Shared Public Protected Friend
Protected Friend Private Function nazwa
(arglist) As typ Implements
interfejs.zdefiniowananazwa instrukcje
Exit Function instrukcje End Function
82 Deklaracje metod w VB.NET
- Definicja procedury ma wtedy postac
- attrlist lista atrybutów dla danej metody. Jest
to nowosc w stosunku do poprzednich wersji
kompilatora. - Wszystkie atrybuty musza byc dziedziczone z klasy
System.Attribute.
ltattrlistgt Overloads Overrides
Overridable NotOverridable MustOverride
Shadows Shared Public Protected Friend
Protected Friend Private Sub nazwa
(arglist) Implements interfejs.zdefiniowanan
azwa instrukcje Exit Sub instrukcje
End Sub
83 Deklaracje metod w VB.NET
- Zamiast stosowac Declare Function mozna
zastosowac klase atrybutu DllImportAttribute,
której konstruktor ma pewne parametry jak np.
dllName ( w tym przypadku Kernel32).
Public Class CDll ltDllImport("Kernel32",
EntryPoint"GetWindowsDirectory")gt Public _
Shared Function GetWindowsDirectory(ByVal
lpBuffer As StringBuilder, _ ByVal nSize As
Integer) As Long End Function ltDllImport("Kernel3
2", EntryPoint"GetSystemDirectory")gt Public _
Shared Function _ GetSystemDirectory(ByVal
lpBuffer As StringBuilder, ByVal nSize As _
Integer) As Long End Function ltDllImport("Kernel3
2", EntryPoint"GetCommandLine")gt Public _
Shared Function GetCommandLine() As IntPtr End
Function End Class
84- Z wykorzystaniem przeciazenia nazwy funkcji lub
procedury z klasy bazowej - Overloads.
Public Class CMojaKlasaBazowa Public Function
MojaFunkcjaBazowa(ByVal x As Long, ByVal y As_
Long) As Long MojaFunkcjaBazowa x y End
Function End Class Public Class
CMojaKlasaDziedziczaca Inherits
CMojaKlasaBazowa Public Overloads Function
MojaFunkcjaBazowa(ByVal x As Long, _ ByVal y As
Long, ByVal z As Long) As Long MojaFunkcjaBazowa
x y z End Function Public Function
MojaFunkcjaBazowa(ByVal x As Long, ByVal y As _
Long, ByVal z As Long, ByVal Mnoz As Long) As
Long Blad MojaFunkcjaBazowa (x y z)
Mnoz End Function End Class
85- Nie mozna zastosowac slowa Overloads do
przeciazania metod, które róznia sie od siebie
tylko wartoscia zwracana
Public Class CMojaKlasaBazowa Public Function
MojaFunkcjaBazowa(ByVal x As Long, ByVal y As _
Long) As Long MojaFunkcjaBazowa x y End
Function End Class Public Class
CMojaKlasaDziedziczaca Inherits
CMojaKlasaBazowa Public Overloads Function
MojaFunkcjaBazowa(ByVal x As Long, _ ByVal y As
Long) As Double Blad!!! MojaFunkcjaBazowa
x y End Function Public Overloads Function
MojaFunkcjaBazowa(ByVal x As Long, _ ByVal y As
Long, ByVal z As Long, ByVal Mnoz As Long) As
Long MojaFunkcjaBazowa (x y z)
Mnoz End Function End Class
86- Z wykorzystaniem metody Overrides, która
zastepuje identyczna metode klasy bazowej (o tej
samej liczbie i typie parametrów, oraz typie
wartosci zwracanej). Metoda w klasie bazowej musi
byc okreslona jako Overridable
Public Class CMojaKlasaDziedziczaca Inherits
CMojaKlasaBazowa Public Overridable Overloads
Function MojaFunkcjaBazowa(ByVal x As Long, ByVal
y As Long, _ ByVal z As Long) As
Long MojaFunkcjaBazowa x y z End
Function Public Overloads Function
MojaFunkcjaBazowa(ByVal x As _ Long, ByVal y As
Long, ByVal z As Long, ByVal Mnoz As _ Long) As
Long MojaFunkcjaBazowa (x y z)
Mnoz End Function End Class
87 Deklaracje metod w VB.NET
Public Class CMojaKlasaDziedziczaca2 Inherits
CMojaKlasaDziedziczaca Public Overloads Overrides
Function MojaFunkcjaBazowa(ByVal x As Long, ByVal
y As Long, _ ByVal z As Long) As
Long MojaFunkcjaBazowa (x y) z End
Function End Class
- Z wykorzystaniem metody Overridable, która
wskazuje, ze metoda z klasy bazowej moze byc
nadpisana przez identyczna metode w klasie
dziedziczacej, lub - Z wykorzystaniem metody NotOverridable, która
oznacza, ze ta metoda nie moze byc zastapiona
przez zadna inna metode.
88- Funkcja typu NotOverridable musi sama zastepowac
taka sama metode w klasie bazowej dla swej klasy.
Public Class CMojaKlasaBaza2 Inherits
CMojaKlasaBazowa Public NotOverridable Overrides
Function MojaFunkcjaBazowa (ByVal x As Long,
ByVal y As Long) As _ Long MojaFunkcjaBazowa x
y End Function End Class Metoda w klasie
bazowej musi byc okreslona jako
Overridable Public Class CMojaKlasaDziedziczaca3
Inherits CMojaKlasaBaza2 Public Overrides
Function MojaFunkcjaBazowa _ Blad!!! (ByVal x As
Long, ByVal y As Long) As Long MojaFunkcjaBazowa
x y End Function End Class
89- Z wykorzystaniem metody MustOverride, która
wskazuje, ze ta metoda nie jest zdefiniowana w
tej klasie i musi byc zdefiniowana w klasie
pochodnej klasa, w której deklarujemy taka
metode musi byc zadeklarowana jako MustInherit.
Public MustInherit Class CMojaKlasaBaza2 Public
MustOverride Function MojaFunkcjaBazowa _ (ByVal
x As Long, ByVal y As Long) As Long End
Class Public Class CMojaKlasaDziedziczaca3 Inheri
ts CMojaKlasaBaza2 Public Overrides Function
MojaFunkcjaBazowa _ (ByVal x As Long, ByVal y As
Long) As Long MojaFunkcjaBazowa x y End
Function End Class
90 Deklaracje metod w VB.NET
- Z wykorzystaniem metody Shadows, która wskazuje,
ze metoda ta zakrywa identycznie nazwany element
programistyczny lub zbiór przeciazonych elementów
w klasie bazowej
Public Class CMojaKlasaBazowa3 Public i As
Long End Class Public Class CMojaKlasaDziedziczaca
4 Inherits CMojaKlasaBazowa3 Public Shadows
Function i(ByVal e As Long) As String MsgBox(e,
MsgBoxStyle.Information) i "Jest OK!" End
Function End Class
91- Z wykorzystaniem metody Shared , która wskazuje,
ze ta metoda nie musi byc wywolana z instancji
danego typu, lecz mozna ja wywolac bezposrednio z
typu nie tworzac instancji tego typu
Public Class CMojaKlasa1 Public Shared Function
MojaFunkcjaBazowa _ (ByVal x As Long, ByVal y As
Long, ByVal z As Long) As Long MojaFunkcjaBazowa
(x y) z End Function End Class Public
Class CMojaKlasa2 Public Function
MojaFunkcjaDziedzicaca(ByVal i As Long) As
String i CMojaKlasa1.MojaFunkcjaBazowa(2, 3,
4) End Function End Class
92- Z wykorzystaniem metody Public
- Z wykorzystaniem metody Protected dostepnej
tylko z poziomu wlasnej klasy lub dziedziczacej
Public Class CMojaKlasaBazowa3 Protected Function
MojaFunkcjaBazowa(ByVal x As Long, _ ByVal y As
Long) As Long MojaFunkcjaBazowa x y End
Function End Class Public Class
CMojaKlasaDziedziczaca4 Inherits
CMojaKlasaBazowa3 Public Shadows Function
MojaFunkcja(ByVal e As Long) As _ String Dim
Wynik As Long Wynik Me.MojaFunkcjaBazowa(1,
2) End Function End Class
93 Deklaracje metod w VB.NET
- Nie mozna wykonac nastepujacej operacji
Public Class CMojaKlasaDziedziczaca4 Inherits
CMojaKlasaBazowa3 Public Function
MojaFunkcja(ByVal e As Long) As String Dim
Instancja As New CMojaKlasaBazowa3() Dim Wynik
As Long Wynik Instancja.MojaFunkcjaBazowa(1, 2)
Blad !!! End Function End Class
Taka operacja jest mozliwa dopiero po
zadeklarowaniu metody jako Friend.
94- Z wykorzystaniem metody Friend do metody w ten
sposób zadeklarowanej mozna miec dostep w calym
programie gdzie zawarta jest jej deklaracja i
gdziekolwiek indziej, ale w ramach danego
podzespolu (assembly)
Public Class CMojaKlasaBazowa3 Friend Function
MojaFunkcjaBazowa(ByVal x As Long, _ ByVal y As
Long) As Long MojaFunkcjaBazowa x y End
Function End Class Public Class
CMojaKlasaDziedziczaca4 Public Function
MojaFunkcja(ByVal e As Long) As String Dim
Instancja As New CMojaKlasaBazowa3() Dim Wynik
As Long Wynik Instancja.MojaFunkcjaBazowa(1,
2) End Function End Class
95- Z wykorzystaniem metody Protected Friend dostep
do metody zadeklarowanej w ten sposób jest taki
sam jak do metod zadeklarowanych jako Protected i
Friend. - Z wykorzystaniem metody Private metoda
zadeklarowana w ten sposób jest dostepna tylko w
tym kontekscie gdzie zostala zadeklarowana.
Public Class CMojaKlasa3 Private Function
MojaFunkcja(ByVal x As Long, ByVal y As _ Long)
As Long MojaFunkcja x y End
Function Private Function MojaFunkcja2() Dim
Wynik As Long Wynik Me.MojaFunkcja(1, 2) End
Function End Class
96 Deklaracje metod w VB.NET
- Z wykorzystaniem metody Implements , która
implementuje metode zdefiniowana poprzez
interfejs
Interface IMojInterfejs Function
MojaFunkcja(ByVal x As Long, ByVal y As Long) _
As Long End Interface Public Class
CMojaKlasa4 Implements IMojInterfejs Public
Function MojaFunkcja (ByVal x As Long, ByVal y As
_ Long) As Long Implements IMojInterfejs.MojaFunkc
ja MojaFunkcja x y End Function End Class
97Literatura
- Dino Esposito Tworzenie aplikacji za pomoca
ASP.NET oraz ADO.NET (Microsoft Press,
Wydawnictwo RM Warszawa 2002) - Julian Templeman, David Vitter Visual Studio
.NET .NET Framework. Czarna Ksiega (Helion 2003) - Microsoft Press Microsoft Visual C.NET
Encyklopedia (Helion 2003) - Rusty Harold XML. Ksiega Eksperta (Helion
2001) - Scott Worley ASP.NET. Vademecum Profesjonalisty
(Helion, 2003) - Steaven Holzner XML. Vademecum Profesjonalisty
(Helion2001) - http//www.ASP.com
- http//www.ietf.org/RFC 2069/
- http//www.learnASP.com
- http//www.msdn.microsoft.com/vcsharp/
- http//www.windows2003.pl
- http//www.xml.com