1 / 97

VB.NET

VB.NET. Maria DEMS. Podstawy Visual Basic.NET. Visual Basic .NET jest jednym z podstawowych języków programowania stosowanych na platformie .NET Deklaracja i inicjacja zmiennej odbywa się za pomocą pojedynczej instrukcji. Dim m As String=”Mama”

aminia
Télécharger la présentation

VB.NET

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VB.NET Maria DEMS

  2. Podstawy Visual Basic.NET • Visual Basic .NET jest jednym z podstawowych języków programowania stosowanych na platformie .NET • Deklaracja i inicjacja zmiennej odbywa się za pomocą pojedynczej instrukcji. Dim m As String=”Mama” • Tworzenie nowych obiektów wymaga zdefiniowania klasy. • Klasa jest typem obiektu, definiującym właściwości i metody egzemplarzy obiektów. • Deklaracja zmiennej obiektu połączenia ma postać: Dim conn = New SqlConnection()

  3. Podstawy Visual Basic.NET • Do tworzenia i inicjalizacji obiektów stosowane są konstruktory parametryzowane (akceptujące argumenty). Dim command = New SqlCommand(strSelect, conn) • Tablica to grupa zmiennych tego samego typu zajmująca ciągły obszar pamięci, do których można odwoływać się pojedynczo za pomocą indeksów. Dim tab(5) As String • Tablice mogą mieć dynamicznie zmieniany rozmiar za pomocą instrukcji ReDim. • Chcąc zachować wszystkie dane przechowywane w tablicy należy użyć słowa 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 utratę części informacji, na przykład konwertując daną zmiennoprzecinkową na typ całkowity tracona jest część dziesiętna. • Przykład konwersji pobranej wartości z bazy na String i przypisanie do elementu tabeli. dr(4) = CStr(reader.GetValue(4)) • W języku VB.NET dla wielu typów danych istnieją metody umożliwiające konwersję na inny typ. Nazwa takiej metody zawsze zaczyna się od To, a kończy nazwą docelowego typu danych. Przykład konwersji dzisiejszej daty systemowej na typ String: Dim data1 As String = DateTime.Today.Year.ToString

  7. Procedury i funkcje w VB.NET • W VB.NET program może zawierać procedury, funkcje i zdarzenia (np. OnClick, Page_Load, OnSelectedIndexChanged). • Procedura definiowana jest słowem kluczowym Sub Nazwa_procedury (lista_argumentów) ... End Sub. • Zmienna tymczasowa zdefiniowana w bloku procedury ma zasięg tylko tej procedury. • Z wyjątkiem zmiennej Static, zmienne w bloku procedury nie przechowują swojej wartości pomiędzy kolejnymi wywołaniami procedury.

  8. Procedury i funkcje w VB.NET • Funkcja, w odróżnieniu od procedury, zwraca wartość do programu głównego. Wykorzystuje się do tego celu instrukcje Return umieszczaną w wewnątrz funkcji. • Deklaracji funkcji ma postać: Function Nazwa_funkcji (argumenty) As typ_wyniku ... End Function • Wywołanie funkcji może nastąpić w dowolnym miejscu programu, poprzez przypisanie nazwy funkcji do zmiennej.

  9. Procedury i funkcje w VB.NET • Procedury i funkcje zazwyczaj wymagają przekazania dodatkowych informacji w postaci argumentów. • Argumenty przekazywane są przez wartość ByVal lub przez referencję ByRef (opcja domyślna). • W definicji wywołania procedury lub funkcji można określić również parametry opcjonalne za pomocą słowa kluczowego Optional, które mogą przyjmować wartości domyślne. • Parametry opcjonalne muszą występować jako ostatnie na liści argumentów. • Przy wywoływaniu procedury lub funkcji, która posiada parametry opcjonalne można je pominąć, stawiając w to miejsce przecinek.

  10. Procedury i funkcje w VB.NET • Przykład 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 = "") • Przykład wywołania tej procedury. Parametr opcjonalny jest określony i jest ostatnim na liście. pro_reader("pro_program", program, 2, miejsce)

  11. Zakres zmiennych w VB.NET • Na zakres zmiennej mają wpływ trzy czynniki: • miejsce deklarowania zmiennej (blok, procedura, funkcja, moduł, klasa, struktura, przestrzeń nazw), • modyfikator użyty przy deklaracji (Dim, Private, Friend, Public), • zakres modułu, klasy lub struktury w którym została zadeklarowana zmienna. • Czas życia zmiennej jest wyznaczony przez jej zakres. • Zmienne, których czas życia jest większy niż jej zakres nazywane są zmiennymi statycznymi (Static)

  12. Instrukcje sterujące w VB.NET If TestPorównujący Then Jedna lub wiele instrukcjiEnd If If TestPorównujący Then Instrukcja If TestPorównujący Then Jedna lub wiele instrukcjiElse Jedna lub wiele instrukcjiEnd If Instrukcje zagnieżdżoneIf TestPorównujący Then Jedna lub wiele instrukcjiElse If TestPorównujący Then Jedna lub wiele instrukcji Else Jedna lub wiele instrukcji EndifEnd If Instrukcje warunkowe

  13. 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 są fałszywe End If • W przypadku instrukcji zagnieżdżonych lepiej używać struktury: • Instrukcja może zawierać dowolną liczbę klauzul ElseIf. Użycie klauzuli Else jest w tym przypadku opcjonalne • Warunki sprawdzane są po kolei, aż do napotkania pierwszego prawdziwego, dlatego istotna jest kolejność wyrażeń warunkowych.

  14. Instrukcja Select Case Select Case wyrażenie Case wartość (lub wartości oddzielone przecinkami) Jedna lub wiele instrukcji Case Is relacja Jedna lub wiele instrukcji Case wyrażenie1 To wyrażenie2 Jedna lub wiele instrukcji Case Else Jedna lub wiele instrukcji End Select • Warunki Case sprawdzane są po kolei; po pierwszym spełnieniu warunku Case i wykonaniu związanych z nim instrukcji następuje wyjście z konstrukcji.

  15. Pętle w VB.NET • Pętle są zbiorem instrukcji, które należy wykonać wielokrotnie. • Rozróżnia się dwie podstawowe struktury pętli: Do ... Loop For ... Next • Pętla Do ... Loop może mieć struktury: Do If warunek Then Exit Do instrukcje Loop

  16. Pętla Do... Loop w VB.NET Do Until warunek pętli instrukcje Loop Do Jedna lub wiele instrukcji Loop Until warunek pętli • Wyjście z pętli następuje w chwili, gdy wpisany warunek przyjmuje wartośćTrue.

  17. Pętla Do... Loop w VB.NET Do While warunek pętli Jedna lub wiele instrukcji Loop Do Jedna lub wiele instrukcji Loop While warunek pętli • Pętla Do While...Loop to pętla, w której wpisane instrukcje powtarzane są dopóki dany warunek ma wartośćTrue. • Można przerwać pętlę wcześniej przy pomocy komendy Exit Do

  18. Pętla 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. • Można przerwać pętlę wcześniej przy pomocy komendy Exit For

  19. Pętla For Each... Next w VB.NET For Each element In grupa [instrukcje] [Exit For] [instrukcje] Next [element] • Pętla For Each ... Next pozwala wykonać fragment kodu dla każdego obiektu należącego do tablicy lub kolekcji obiektów. • Kolekcją nazywamy uporządkowany zbiór powiązanych ze sobą obiektów, do którego możemy odwoływać się jak do pojedynczego obiektu.

  20. Kolekcje w VB.NET • Kolekcja posiada atrybut Count, którego wartość odpowiada liczbie elementów kolekcji. • Kolekcja posiada metody, pozwalające dodać oraz usunąć obiekt z kolekcji: • metoda Add( ) - dodanie obiektu do kolekcji, • metoda Remove ( ) - usuwanie obiektu z kolekcji, • Możemy tworzyć własne kolekcje (obiekty typu Collection) oraz dodawać i usuwać obiekty do kolekcji predefiniowanych (np.. kolekcji Items).

  21. Zdarzenia w VB.NET • Zdarzenia są to działania jakie mogą wystąpić w danej aplikacji, po której trzeba podjąć jakąś akcję. • Każde zdarzenie powinno zawierać procedurę obsługi tego zdarzenia (event handler). • Składnia procedury zdarzeniowej jest identyczna jak w przypadku normalnych procedur, ale różnica pojawia się w liście parametrów.

  22. Zdarzenia w VB.NET • Przykład deklaracji procedury wyszukiwania wycieczek odpowiadającej na zdarzenie kliknięcia przycisku. Sub znajdz_wycieczke(ByVal obj As Object, ByVal e As EventArgs) Handles btznajdz.Click • Handles określa do jakiego obiektu i zdarzenia odnosi się ta procedura. • Gdy kliknięty zostanie przycisk btznajdz, wywoływana jest procedura znajdz_wycieczke. • Argument obj jest obiektem, który wywołał zdarzenie, natomiast EventArgs zawiera dane właściwe dla zdarzenia, które zaszło.

  23. Obsługa błedów w VB.NET • Do obsługi błędów stosowane są instrukcje try i catch • Użycie instrukcji try informuje, że pewien blok kodu należy wykonać próbnie. W takim przypadku, jeśli jakikolwiek fragment kodu zapisany wewnątrz tej instrukcji spowoduje zgłoszenie błędu, to nie doprowadzi on do przerwania wykonywania aplikacji i wyświetlenia komunikatu, lecz umożliwi rozwiązanie zaistniałego problemu. • Instrukcja try oraz inne instrukcje używane wraz z nią są wspólnie nazywane strukturalną obsługą wyjątków.

  24. Obsługa błedów w VB.NET • Cała składnia składa się z instrukcji try, po której umieszczany jest chroniony blok kodu. Następnie umieszczane są instrukcje catch i finally. Try instrukcje kodu... Catch obsługa wyjątku End try • Zgłaszanie wyjątków pozwala na przechwytywanie błędów zanim doprowadzą one do przerwania wykonywania aplikacji.

  25. Visual Basic.NET • Visual Basic.NET wprowadza zmiany w stosunku do VB w następujących dziedzinach: • nowych możliwości programowania obiektowego, • większych możliwości tworzenia interfejsów www, • strukturalną obsługę języka i tworzenie wątków, • dostosowanie do wspólnej specyfikacji CLS oraz wspólnego systemu typów CTS, • eliminację przestarzałych elementów składni starszych wersji VB

  26. Nowe możliwości programowania obiektowego VB.NET • Nowych możliwości programowania obiektowego w VB.NET obejmują: • pełne dziedziczenie klas i polimorfizm • parametryzowane konstruktory - jest to możliwość przekazywania informacji do klasy w chwili tworzenia jej instancji, w celu ustawienia jej właściwości lub modyfikacji metod, • przesłanianie elementów umożliwiające modyfikowanie właściwości i metod klasy bazowej w podklasach, • przeładowywanie nazw funkcji, • współdzielenie właściwości lub metod przez wszystkie instancje danej klasy.

  27. Przystosowanie projektów do VB.NET

  28. Tworzenie projektu w środowisku VB.NET • Tworzenie projektu w VB.NET polega na zbudowaniu diagramu klas projektu, np. z wykorzystaniem języka UML (Unified Modeling Language) • Diagram klas pozwala opisać funkcjonalność różnych klas i podzielić program na poszczególne zadania oraz zawiera opis użytkowników programu (aktorów) Dodaj towar Usuń towar Użytkownik Baza danych Pobierz dane z bazy

  29. Tworzenie projektu w środowisku VB.NET • Diagram klas należy zamienić na projekt klas, a więc określić ich atrybuty, metody i zdarzenia; przykładowo: • definiujemy klasę Użytkownik o atrybutach: nazwa, hasło i metodzie autoryzuj, • definiujemy klasę Towar o atrybutach: numer, nazwa, dostawca, cena i metodach dodaj, usuń, pobierz, sprawdź • Projekt klas opisuje jedynie ich funkcjonalność (ich interfejs) a nie ich wewnętrzną budowę. • Kolejnym etapem jest zdefiniowanie klas najniższego poziomu

  30. Tworzenie projektu w środowisku VB.NET • Klasy dodaje się albo w oknie Solution Explorera albo w menu Projekt opcją Add Class.. • zostanie wyświetlone okno dialogowe Add New Item • w okienku Templates należy wybrać Class, w polu Name wpisać jej nazwę i uruchomić opcje Open • zostanie wyświetlone okno edytora kodu zawierające deklarację klasy: Public Class Nazwa_klasy .................. End Class • W ciele klasy należy zdefiniować jej atrybuty (zmienne), metody i zdarzenia.

  31. Tworzenie projektu w środowisku VB.NET • Właściwości w Visual Basic.NET są tworzone w definicjach klas za pomocą słowa kluczowego Property • właściwości „tylko do odczytu” (read-only) posiadają funkcjonalność Get, • właściwości „tylko do zapisu” (write-only) posiadają funkcjonalność Set, np.: Public Class KomunikatMsg Private strKomunikat as String Public Property MsgText( ) As String Get MsgText = strKomunikat End Get

  32. Tworzenie projektu w środowisku VB.NET Set(ByVal Value As String) strKomunikat = Value End Set End Property End Class • W celu odczytania wartości strKomunikat z obiektu MyKomunikat klasy KomunikatMsg wykorzystujemy właściwość MsgText( ) strValue = MyKomunikat.MsgText( ) • W celu przypisania do obiektu MyKomunikat określonej wartościwykorzystujemy również właściwość MsgText( ) MyKomunikat.MsgText( ) = „Witaj”

  33. Tworzenie projektu w środowisku VB.NET • Polecenia Get i Set pozwalają odczytywać i ustawiać wartości pól prywatnych • Zapisywanie stanu obiektu do pliku tekstowego i jego odczytywanie jest określane słowem kluczowym persistence. • Obiekty z modyfikatorem persistence są obiektami trwałymi; ich stan jest aktualną wartością tego obiektu. • Visual Basic.NET obsługuje funkcje dziedziczenia. • Klasa pochodna wskazuje używaną przez siebie klasę bazową słowem Inherits Public Class Komunikat_1Msg Inherits KomunikatMsg End Class

  34. Tworzenie projektu w środowisku VB.NET • Do zapisywania danych klasy do pliku służy metoda Write( ) Public Function Write ( ) As Boolean Dim MsgFile As Stream Write = True MsgFile = File.Open(„msg.bin”, FileMode.Create) MsgFile.Close( ) //zamknięcie utworzonego pliku End Function • Do automatycznego zapisywania stanu obiektu przed jego zniknięciem służy metoda Dispose ( ) Public Sub Dispose ( ) Write ( ) End Sub

  35. Tworzenie projektu w środowisku VB.NET • Do odczytywania stanu obiektu w chwili tworzenia nowej jego instancji służy metoda Read( ) Public Function Read ( ) As Boolean Dim MsgFile As Stream Read = True MsgFile = File.Open(„msg.bin”, FileMode.Open) MsgFile.Close( ) //zamknięcie otwartego do odczytu pliku End Function • Do tworzenia nowej instancji klasy Komunikat_1Msg wykorzystywana jest metoda New ( ) • Jeśli zdefiniujemy metodę New ( ) i z jej wnętrza wywołamy metodę Read ( ) to obiekt odczyta zapisany stan obiektu (o ile zapis został wcześniej dokonany).

  36. Dziedziczenie w VB.NET • Definicja metody New ( ) ma postać: Public Sub New ( ) MyBase.New( ) ................... Read ( ) End Sub • Wewnątrz podklasy odwołanie do klasy bazowej realizowane jest przy użyciu słowa kluczowego MyBase • Formularz Windows jest modułem klas dziedziczącym cechy formularza z klasy bazowej System.Windows.Forms platformy .NET lub z innego formularza.

  37. Budowa obiektu MsgReader • Definicja klasy MsgReader ma postać: Class MsgReader Inherits System.Windows.Forms.Form Public Sub New( ) MyBase.New() //tworzenie obiektu formularza MsgReader = Me End Sub End Class • Utworzony formularz MsgReadersłuży do przeglądania i edycji wiadomości przechowywanych w obiekcie klasy Komunikat_1Msg

  38. Tworzenie okna formularza • Utworzony formularz MsgReaderjest formularzem pustym, więc należy dodać do niego kontrolki. • Wszystkie kontrolki znajdujące się wewnątrz obiektu okno formularz deklarowane są jako pola inicjalizowane metodą InitializeComponent ( ). • Po dodaniu kontrolki metodą New automatycznie ustawiane są właściwości niezbędne do określenia charakterystyki i pozycji kontrolki. • Kontrolki ukazujące się w oknie formularza należą do zbioru kontrolek dodanego metodą Add( ) oraz zdefiniowane w klasie bazowej.

  39. Tworzenie okna formularza • Ponieważ klasa MsgReader dziedziczy z klasy bazowej System.Windows.Forms.Form, dostaje automatyczny dostęp do zbioru kontrolek (controls collection) • Do przeglądania i edycji tekstu wykorzystywana jest kontrolka wieloliniowego edytora (TextBox control) • W celu powiązania formularza MsgReaderz obiektem klasy Komunikat_1Msg należy do metody New( ) klasy MsgReader dodać parametr zawierający referencję do obiektu klasy Komunikat_1Msg; parametr ten jest zapisywany do pola klasy MsgReader i może być używany wewnątrz obiektu.

  40. Public Class FormularzVB Inherits System.Windows.Forms.Form ........................................ Private Sub InitializeComponent() Me.TextBox = New System.Windows.Forms.TextBox() Me.TextBox.AcceptsReturn = True Me.TextBox.Multiline = True Me.TextBox.Name = "TextBox" ................... Me.TextBox.Text = "" Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.TextBox}) Me.Text = "Zadanie" End Sub End Class

  41. Wyświetlanie 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 wewnątrz klasy // MsgReader referencji do zmiennej Msgklasy Komunikat_1Msg InitializeComponent( ) TextBox.Text = Msg.MsgText( ) End Sub • Do wyświetlenia zawartości pola tekstowego wykorzystujemy właściwość Text kontrolki TextBox, zainicjalizowanej wartością MsgText obiektu klasy Komunikat_1Msg

  42. Zdarzenia OK i Anuluj • Zdarzenia obsługują 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 wiadomości .............................. Close() // zamknięcie 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 obsługują procedury zdarzeniowe zawarte w klasie MsgReader

  43. Uruchamianie aplikacji w Visual Basic.NET • Domyślnie aplikacje Visual Basic.NET uruchamiane są przez wywołanie instancji domyślnego formularza (np. MsgReader). • Jest to stosowane wtedy, gdy aplikacja całkowicie opiera się na formularzu głównym oraz gdy metoda New( ) nie pobiera żadnych 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 będzie miał postać: • Tworzenie następnego formularza może bazować 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 będący instancją klasy Form2 może posiadać dwa zestawy kontrolek: • utworzonych za pomocą modułu Visual Designer • oddziedziczonych z formularza Form1. • Dziedziczony jest zarówno wygląd kontrolek jak i kod obsługujący kontrolki. • Dziedziczenie jest możliwe wszystkich klas utworzonych w jakimkolwiek języku platformy .NET. • W VB. NET nie występuje dziedziczenie wielokrotne, dostępne w C++ i niektórych innych językach obiektowych.

  46. Parametryzowane konstruktory w VB.NET • Podczas tworzenia instancji obiektu mogą być do niego przekazane parametry, które natychmiast modyfikują zachowanie się tego obiektu. • W poprzednich wersjach VB zamiast konstruktorów stosowane były zdarzenia zachodzące podczas tworzenia instancji, takie jak: • Class Initialize dla klas, • Form Load dla formularzy, do których nie mogły być przekazywane żadne parametry. • Przykładowy kod w VB miałby więc postać: Dim objNowiPracownicy As New Pracownicy objNowiPracownicy.PracownicyID = (”125-55-2345”)

  47. Parametryzowane konstruktory w VB.NET • Przykładowy kod w VB.NET będzie miał postać: • Konstruktor w VB.NET nie jest zdarzeniem, ale procedurą, więc jest określany poprzez instrukcję Sub New, ma zakres Public i może mieć argumenty. • Fragment kodu konstruktora ma przykładową postać: • W tym przypadku przy tworzeniu każdej 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 są automatycznie podczas tworzenia instancji. • Wykorzystanie konstruktora do tworzenie nagłówka formularza Form2 • Tworzymy nowy projekt formularza Windows w środowisku VB. NET - Form1 i wstawiamy do niego przycisk uruchamiający formularz Form2, • Wstawiamy drugi formularz (domyślnie Form2) opcją Project_SYMBOL|Add Windows Form Dla tego formularza zostanie automatycznie utworzony konstruktor o nazwie Sub New w module Class formularza.

  49. Parametryzowane konstruktory w VB.NET • Domyślny konstruktor ma postać: • Zmieniamy kod konstruktora następująco: 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 klikając otwieramy kod zdarzenia, które wywołuje Button1_Click w edytorze kodu do którego wstawiamy kod: Zawiera on parametr wymagany przez instrukcję Sub New. • Utworzona przyciskiem w Form1 instancja formularza Form2 będzie miała nazwę podaną w parametrze. Dim frmNewForm As New Form2(”Formularz drugi”) frmNewForm.Show( )

More Related