W tej części kursu nadal będziemy zapoznawać się z Visual C#, ale także poznamy podstawowe zasady dotyczące pisania programów w języku C#.
Na początek stwórzmy pierwszy „poważny” system informatyczny J
Nie chodzi mi, w tym momencie, o napisanie go od początku do końca, ale o przećwiczenie tworzenia solution i projektów. Tym systemem będzie program do zarządzania magazynem. W zasadzie nie musimy rozumieć dlaczego takie, a nie inne projekty stworzę (nawet nie wiem, czy mają one sens J), ponieważ celem jest zapoznanie się ze środowiskiem, a nie zrozumienie architektury systemu „Magazyn”.
Do dzieła!
Nazwijmy go „Magazyn”.
Po stworzeniu solution i projektu, zmieńmy nazwę plikowi „Program.cs” na „Magazyn.cs”.
Visual C# zapyta się nas nie tylko, czy chcemy zmienić nazwę pliku, ale także o nazwy elementów związanych z tym plikiem.
Wybierzmy „Yes”. Dzięki temu ,w naszym kodzie, klasa „Program” i wszystkie użycia jej nazwy, zastąpione zostaną nazwą „Magazyn”. Zazwyczaj pliki z rozszerzeniem *.cs zawierają klasę o takiej samej nazwie jak nazwa pliku. Powinniśmy trzymać się tej zasady i starać się, żeby w jednym pliku znajdowała się definicja jednej klasy.
W tej chwili okno edytora zawiera następujący kod źródłowy.
Dodajmy nową klasę do projektu „Magazyn”.
Nazwijmy ją „InterfejsUzytkownika”. Solution Explorer, w tej chwili, zawiera następujące pliki.
@STRONA@Jeśli chcielibyśmy napisać nasz program, to klasa „Magazyn” posłużyłaby jako główna klasa aplikacji, a klasa InterfejsUzytkownika definiowałaby sposób komunikacji z użytkownikiem (komunikatu, menu użytkownika itp.). Dodatkowo potrzebowalibyśmy projektu, w którym wykonywane byłoby zarządzanie magazynem, czyli zawierałby logikę naszego systemu oraz projektu, który pobierałby dane z bazy danych (najprostszą bazą danych mogą być pliki tekstowe). Dla przykładu stwórzmy jeden z tych projektów. Najpierw zapisujemy to co do tej pory zrobiliśmy – Save All – a następnie postępujemy jak na obrazku poniżej.
Musimy wybrać typ projektu i jego nazwę.
Typem będzie „ClassLibrary”, a nazwą „ZarzadcaMagazynu”.
Zawartość Solution Explorer w tej chwili powinna wyglądać jak poniżej.
W tej chwili mamy w jednym solution dwa projekty. W tym kursie raczej nie będziemy pisać takich aplikacji, ponieważ skupimy się na samym języku C#, a nie na architekturze aplikacji, ale warto wiedzieć, jak tego typu rzeczy można zrobić.
Mimo, że obydwa projekty znajdują się w jednym solution, to na razie nie możemy ich ze sobą powiązać, czyli z poziomu jednego projektu używać drugiego. Możemy to osiągnąć dodając tzw. referencję (wskazanie na inny projekt) do projektu. Zobrazujmy to dodając do projektu „Magazyn” referencje do projektu „ZarzadcaMagazynu”.
Następnie wybieramy zakładkę „Project” (zawiera projekty znajdujące się w solution) i dodajemy projekt „ZarzadcaMagazynu”.
W Solution Explorer powinna pojawić się nowo dodana referencja.
Po dodaniu referencji, możemy w kodzie klas znajdujących się w projekcie „Magazyn” używać klas z projektu „ZarzadcaMagazynu”.
Co daje nam łączenie projektów w jednym solution?
W pełnej wersji Visual Studio 2005 możemy tworzyć także inne typy projektów niż są dostępne w Visual C# Express Edition. Przykładowo solution może być system „Biblioteka”. W jego skład wchodziłyby np. dwa projekty: serwer współpracujący z bazą danych (np. dane o książkach, czytelnikach i wypożyczeniach) oraz strona WWW będąca klientem (program komunikujący się z serwerem), na której można dokonać wypożyczenia książki.
Projekty są różnego rodzaju. Mogą to być np. dynamiczna strona internetowa wykonana w technologii ASP.NET, okienkowa aplikacja Windows’owa czy też aplikacja konsolowa (działająca w trybie tekstowym – brak grafiki, jedynie znaki alfanumeryczne). W tym kursie skupimy się na aplikacjach konsolowych, ponieważ świetne nadają się do nauki podstaw języka C#.
@STRONA@Uruchamianie aplikacji
Mimo, że nie napisaliśmy systemu obsługującego magazyn, to jednak chciałbym już teraz pokazać jak możemy uruchamiać pisane przez nas aplikacje.
Najpierw dopiszmy trochę kodu do pliku „Magazyn.cs”.
using System;
using
System.Collections.Generic;
using System.Text;
namespace Magazyn
{
class Magazyn
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello
world.");
System.Console.Read();
}
}
}
Instrukcja
System.Console.WriteLine("Hello
world.");
Wypisze na ekranie napis “Hello world.”, a instrukcja
System.Console.Read();
Będzie czekać na naciśnięcie przez nas jakiegoś klawisza (bez tej instrukcji program skończyłby swoje działanie zaraz po wypisaniu „Hello Word.”).
Uruchomić naszą prostą aplikacje możemy poprzez klawisz „Run” zawierający ikonę z zielonym trójkątem.
Poprzez menu Debug - > Start Debugging lub Debug -> Start Without Debugging.
Po uruchomieniu aplikacji stworzy się plik, z którego pomocą możemy uruchamiać naszą aplikację. Znajduje się on w katalogu
…ścieżka do zainstalowanego Visual C#...\ Visual Studio 2005\Projects\Magazyn\bin\Debug
lub/oraz
…ścieżka do zainstalowanego Visual C#...\ Visual Studio 2005\Projects\Magazyn\bin\Release
Na moim komputerze ścieżka jest następująca:
C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\Magazyn\bin\Debug
a plik ma nazwę “Magazyn.exe” .
Efekt działania programu znajduje się poniżej.
@STRONA@Zasady w C#
Zanim zaczniemy pisać programy, powinniśmy poznać kilka podstawowych zasad dotyczących języka C#.
Wielkość liter ma
znaczenie
Wyrazy „dom” oraz „Dom” to
dla C# dwa różne słowa.
Średnik kończy pojedynczą
instrukcję
Każda instrukcja musi być
zakończona średnikiem. Teoretycznie nie musimy naszego kodu rozbijać na wiele linijek, tylko pisać wszystko w jednej,
rozgraniczając poszczególne instrukcje średnikami. Jednak dla czytelności kodu
nie należy tak postępować.
ZarzadcaMagazynu.Class1 NowaKlasa = new ZarzadcaMagazynu.Class1();
Komentarze
Nie każdy tekst
znajdujący się w pliku jest częścią kodu programu. Istnieje coś takiego jak
komentarze. Są one jakby notatkami sporządzanymi przez programistę. Im więcej
komentarzy, tym lepiej J Należy
opisywać za pomocą komentarzy większość tworzonych przez nas instrukcji,
ponieważ za kilka dni (nie mówiąc już o miesiącach czy latach) możemy nie
pamiętać co chcieliśmy w danym miejscu osiągnąć. Komentarze w C# możemy robić
na kilka sposobów. W naszym kursie będziemy stosować tylko jeden – podwójny
znak ukośnika „//”. Wszystko co znajdzie się za tym znakiem w danej linijce
będzie komentarzem.
//To jest komentarz
//najczęściej umieszcza się w nim opis
kodu.
//Klasa Magazyn to główna klasa naszej
aplikacji.
class Magazyn
{
static void Main(string[]
args)
{
ZarzadcaMagazynu.Class1 NowaKlasa = new
ZarzadcaMagazynu.Class1();
}
}
Możemy szybko komentować i odkomentowywać fragmenty tekstu zaznaczając je i klikjąc przyciski
lub używając skrótów klawiszowych Ctrl + E , C oraz Ctrl + E , U
Bloki kodu – nawiasy
klamrowe
Fragmenty kodu stanowiące
pewną całość zawierają się w nawiasach klamrowych. Taką całość stanowi np.
definicja klasy lub metody (patrz przykład powyżej).
Formatowanie
Bardzo ważną rzeczą w
programowaniu jest formatowanie kodu. Nie jest to sztuka dla sztuki, jakby się mogło wydawać niedoświadczonemu programiście, ale praktyka poprawiająca czytelność
naszego kodu źródłowego. Na szczęście Visual C# „odwala” dużo roboty za nas -
samo robi wcięcia (akapity).
Akapity możemy zmniejszać lub zwiększać zaznaczając fragment tekstu i klikając przyciski
IntelliSense–
„podpowiadacz”
Visual Studio podpowiada nam podczas pisania kodu. Samo
sugeruje jaki wyraz powinniśmy, bądź możemy, w danej chwili napisać. Wyświetla
listę dozwolonych w danym miejscu instrukcji. Podpowiadacz włącza się sam w
niektórych momentach, ale możemy wywołać go samemu naciskając Ctrl i Space.
Podpowiada np. jakie klasy znajdują się w projekcie (a dokładniej przestrzeni nazw, o której będzie mowa w przyszłości).
Po naciśnięciu klawisza „Enter” Visual C# uzupełni nasz kod.
Liczby dziesiętne pisane z
kropką
W C#, inaczej niż w języku
polskim, piszemy liczby dziesiętne. Separatorem pomiędzy częścią całkowitą a
ułamkową jest kropka, a nie przecinek. Poprawnym formatem jest np. 1.7 (jeden i
siedem dziesiątych).
Myślę, że w następnej części kursu możemy już przejść do nauki języka C#. Na początek zaczniemy od rzeczy najważniejszej – klas.