VB.NET - PowerPoint PPT Presentation

1 / 97
About This Presentation
Title:

VB.NET

Description:

Title: Tworzenie zintegrowanych aplikacji bazodanowych Author: Marysia Last modified by: marysia Created Date: 10/3/2003 5:27:13 PM Document presentation format – PowerPoint PPT presentation

Number of Views:61
Avg rating:3.0/5.0
Slides: 98
Provided by: Marys179
Category:
Tags: net | cstr

less

Transcript and Presenter's Notes

Title: VB.NET


1
VB.NET
  • Maria DEMS

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
  • Operatory VB.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
97
Literatura
  • 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
Write a Comment
User Comments (0)
About PowerShow.com