Programowanie C# mgr in. Dariusz Ku p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus
Translacja kodu Kod ródłowy Java, C# Kompilator Kompilator Kod poredni Interpreter Maszyna wirtualna (interpreter, kompilator w locie) C, C++, Pascal Perl, Python, PHP Kod maszynowy
Tworzenie programu Edytor Nieudana Kompilacja Udana Uruchomienie Nieudane Udane Program
C# C# to: Obiektowy jzyk programowania Kompilowany do kodu poredniego Common Intermediate Language CIL Wykonywany w specjalnym rodowisku.net, mono, dotgnu
Platforma.NET Microsoft.NET to rodowisko uruchomieniowe działajce od Windows 2000 Zapewniajce łatwiejszy model programowania Bezpieczestwo i ochron Wygodne narzdzia do tworzenia oprogramowania i jego wdraania take w wieloosobowych zespołach
Filozofia.NET Podstawowe cechy rodowiska.net Wspólne rodowisko uruchomieniowe CLR (Common Language Runtime) Wspólny system typów CTS (Common Type system) Wspólna specyfikacja jzykowa CLS (Common Language Specification) Wspólna biblioteka klas podstawowych
Wielojzyczno.NET W załoeniu rodowisko ma współpracowa z wieloma jzykami programowania Podstawowe, dostpne jzyki: Visual Basic C++ J# (microsoftowa wersja jzyka Java) C# - jzyk stworzony specjalnie dla.net
Jzyk C# Podstawowe cechy jzyka C# to: Obiektowo Prostota Kontrola typów Zgodno (moliwo korzystania z zewntrznych bibliotek)
Rodzaje symboli: Identyfikatory Słowa kluczowe Operatory Symbole w C# Literały (reprezentuj wartoci) i znaki przestankowe (grupuj i rozdzielaj)
Identyfikatory w C# Identyfikatory to nazwy nadane typom, metodom, zmiennym itp.. Identyfikatory to cigi znaków Unicode rozpoczynajce si od litery lub znaku _ W identyfikatorach rozróniana jest wielko liter
Typy danych w C# Typy danych Referencyjne object string Wartoci Numeryczne Znakowe Logiczne int long float double decimal char string bool
Typy danych w C# Typ C# Typ.NET Framework Zakres Rodzaj Rozmiar bool System.Boolean true, false Logiczny 32 b char System.Char U+0000 - U+FFFF Znak Unicode 16b string System.String do 2mld znaków Łancuch znaków UNICODE byte System.Byte 0-255 l. całkowita bez znaku 8b sbyte System.SByte -128 127 l. całk. Ze znakiem 8b int System.Int32-2147483648 2147483647 l. całkowita ze znakiem 32b uint System.UInt32 0 4294967295 l. całkowita bez znaku 32b long System.Int64-9223372036854775808 9223372036854775807 l. całkowita ze znakiem 64b
Typy danych w C# cd. Typ C# Typ.NET Framework Zakres Rodzaj Rozmiar ulong System.UInt64 0 18446744073709551615 l. załkowita bez znaku 64b short System.Int16-32768 32767 l. całkowita ze znakim 16b ushort SystemUInt16 0-65535 l. całkowita bez znaku 16b decimal System.Decimal 1.0E-28-7.9E+28 (28-29 cyfr znacz.) l. Rzeczywista stałopozycyjna 96b double System.Double +-5.0E-324- +-1.7E308 (15-16 cyfr znacz.) l. rzeczywista zmiennopozycyjna 64b float System.Float +-1.5E-45 - +-3.4E38 (7 cyfr znacz.) l. rzeczywista zmiennopozycyjna 32b object System.Object referencja 32b
Zmienne w C# Zmienna to element jzyka reprezentujcy miejsce w pamici słuce do przechowywania danej reprezentowany przy pomocy identyfikatora Kada zmienna ma okrelony typ Warto zmiennej mona zmienia przy pomocy przypisania operatorów ++ i Jzyk C# to jzyk o cisłej kontroli typów
Zmienne w C# Zmienna MUSI by zadeklarowana przed pierwszym uyciem! typ nazwa_zmiennej; int licznik; typ nazwa_zmiennej = warto pocztkowa; double Suma = 1.2543; typ nazwa_zmiennej = wyraenie; int z = 2*x;
Operatory w C# Kategoria Podstawowe Jednoargumentowe Multiplikatywne Addytywne Przesunicia bitowego Relacyjne Równo Iloczyn bitowy (x) x.y f(x) a[x] x++ x new typeof sizeof checked unchecked + -! ~ ++x x (T)x * / + - << >> < > <= => is ==!= & Operatory
Operatory w C# c.d. Kategoria Alternatywa rozłczna (XOR) Suma bitowa Koniunkcja Alternatywa Warunkowe Przypisania Operatory ^ &&? : = += -+ *= /= <<= >>= &= ^= =
Operator przypisania zmienna = wyraenie; x=2*y+z; Typ zmiennej musi by zgodny z typem rezultatu wyraenia Konwersja typów przy przypisaniu int x = 5; double a = 2*x; long z = x+100; Typ lewej strony jest wikszy ni typ prawej strony
Przypisania złoone x+=10; y-=5; z*=2; a/=3; m%=n ab&=cd kl =mn u^=v x=x+10; y=y-5; z=z*2; a=a/3; m=m%n; ab=ab&cd; kl=kl mn; u=u^v;