C_2005_Warsztat_programisty_cshwar.pdf

(421 KB) Pobierz
C# 2005. Warsztat
programisty
Autor: Adrian Kingsley-Hughes, Kathie Kingsley-Hughes
T³umaczenie:Wojciech Demski
ISBN: 978-83-246-1065-5
Tytu³ orygina³u:
C# 2005 Programmers Reference
Format: B5, stron: 392
oprawa twarda
Wyj¹tkowy podrêcznik jêzyka C#
Elementy jêzyka i podstawowe koncepcje programistyczne
Techniki tworzenia najwy¿szej klasy aplikacji dla platformy .NET
Metody poprawy bezpieczeñstwa i wydajnoœci aplikacji
Jêzyk C#, pomimo stosunkowo krótkiej obecnoœci na rynku, zyska³ ogromn¹
popularnoœæ i jest wykorzystywany przez wielu programistów. Trudno siê temu dziwiæ
– ten ³¹cz¹cy w sobie najlepsze cechy Javy i C++ obiektowy jêzyk programowania
jest niezwykle uniwersalny. Mo¿na wykorzystaæ go w niemal ka¿dym projekcie
– programów dla systemu Windows, dynamicznych witryn internetowych w technologii
ASP.NET oraz aplikacji mobilnych dla platformy PocketPC. Prosta sk³adnia,
rozbudowane mechanizmy obs³ugi wyj¹tków i dostêp do ogromnej biblioteki klas .NET
sprawiaj¹, ¿e C# jest doskona³ym narzêdziem.
Ksi¹¿ka
„C#
2005. Warsztat programisty” to po³¹czenie kursu i podrêcznika
programowania w tym jêzyku. Czytaj¹c j¹, opanujesz zarówno podstawy C#, jak
i zaawansowane zagadnienia zwi¹zane z tworzeniem bezpiecznych i wydajnych
aplikacji. Poznasz typy danych, zasady stosowania zmiennych oraz sk³adniê instrukcji
i wyra¿eñ. Przeczytasz o programowaniu obiektowym, typach generycznych, obs³udze
wyj¹tków i technikach programowania w C#. Znajdziesz tu równie¿ omówienie
gramatyki jêzyka C#, konwencji nazewniczych i zasad umieszczania komentarzy
w dokumentacji XML.
Narzêdzia programistyczne
Struktura jêzyka C#
Typy danych
Wyra¿enia i instrukcje
Przestrzenie nazw
Klasy i obiekty
Typy wyliczeniowe
Obs³uga wyj¹tków
Typy generyczne
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Poznaj nowoczesne metody tworzenia aplikacji
Spis treści
O autorach .................................................................................................................................................. 15
Wprowadzenie ........................................................................................................................................... 17
Rozdział 1. Czym jest C#? ..........................................................................................................................23
Nazwa ......................................................................................................................... 23
Ogólny rzut oka na C# .................................................................................................. 23
Historia .................................................................................................................. 24
C# i CLR ................................................................................................................ 24
Wzmianka o .NET .................................................................................................... 25
Standardy ............................................................................................................... 25
Inne implementacje ................................................................................................. 25
Przykładowy kod C# ...................................................................................................... 26
Korzyści z nauki programowania w C# ............................................................................ 28
Podsumowanie ............................................................................................................ 28
Rozdział 2. Początki pracy z C# ...............................................................................................................29
Początki pracy z C# są tańsze, niż mogłoby się wydawać! ................................................ 29
Tanie opcje ............................................................................................................. 29
Jak pisać kod C#, stosując bezpłatne narzędzia ........................................................ 32
Tanie narzędzie, które ułatwia
życie!
.............................................................................. 35
Alternatywne edytory tekstowe i narzędzia C# ................................................................. 37
Narzędzia komercyjne: Visual Studio i Visual C# ............................................................. 37
Podsumowanie ............................................................................................................ 38
Rozdział 3. Ogólny rzut oka na C# ...........................................................................................................39
C# .............................................................................................................................. 39
Podstawy C# ................................................................................................................ 39
Czytanie
źródłowego
kodu C# ................................................................................... 40
Typy ............................................................................................................................ 41
Typy wartości .......................................................................................................... 41
Typy referencyjne .................................................................................................... 41
Typy predefiniowane ................................................................................................ 42
Przeciążanie ........................................................................................................... 44
Przekształcenia ....................................................................................................... 44
Typy tablicowe ........................................................................................................ 45
Zmienne i parametry ..................................................................................................... 45
Wyrażenia .................................................................................................................... 47
Instrukcje .................................................................................................................... 48
6
C# 2005. Warsztat programisty
Klasy ........................................................................................................................... 49
Stałe ...................................................................................................................... 50
Pola ....................................................................................................................... 50
Metody ................................................................................................................... 50
Właściwości ............................................................................................................ 51
Zdarzenia ............................................................................................................... 51
Operatory ............................................................................................................... 51
Indeksatory ............................................................................................................ 51
Konstruktory instancji .............................................................................................. 51
Destruktory ............................................................................................................ 52
Konstruktory statyczne ............................................................................................ 52
Dziedziczenie .......................................................................................................... 52
Klasy statyczne ....................................................................................................... 52
Struktury ..................................................................................................................... 53
Interfejsy ..................................................................................................................... 53
Delegacje .................................................................................................................... 53
Typy wyliczeniowe ......................................................................................................... 54
Typy generyczne ........................................................................................................... 54
Iteratory ...................................................................................................................... 54
Typy dopuszczające wartość pustą ................................................................................. 55
Podsumowanie ............................................................................................................ 55
Rozdział 4. Struktura języka C# ..............................................................................................................57
Programy C# ................................................................................................................ 57
Gramatyka ................................................................................................................... 59
Dwuznaczności gramatyczne .................................................................................... 59
Analiza leksykalna ................................................................................................... 61
Podsumowanie ............................................................................................................ 77
Rozdział 5. Koncepcje języka C# .............................................................................................................79
Uruchamianie aplikacji .................................................................................................. 79
Zamykanie aplikacji ...................................................................................................... 80
Deklaracje w C# ........................................................................................................... 80
Składowe .................................................................................................................... 83
Składowe przestrzeni nazw ...................................................................................... 83
Składowe struktur ................................................................................................... 83
Składowe wyliczeniowe ............................................................................................ 83
Składowe klas ........................................................................................................ 83
Składowe interfejsów .............................................................................................. 84
Składowe tablic ...................................................................................................... 85
Składowe delegacji ................................................................................................. 85
Dostęp do składowych .................................................................................................. 85
Deklarowana dostępność ......................................................................................... 85
Sygnatury .................................................................................................................... 86
Sygnatury indeksatorów ........................................................................................... 86
Sygnatury konstruktorów instancji ............................................................................ 86
Sygnatury metod ..................................................................................................... 86
Sygnatury operatorów .............................................................................................. 87
Sygnatury i przeciążanie .......................................................................................... 87
Zasięg ......................................................................................................................... 88
Nazwy przestrzeni nazw i typów ..................................................................................... 89
Spis treści
7
Zarządzanie pamięcią w C# ........................................................................................... 89
Podsumowanie ............................................................................................................ 90
Rozdział 6. Typy ......................................................................................................................................... 91
Trzy typy typów ............................................................................................................. 91
Różnice pomiędzy typami wartościowymi i referencyjnymi ........................................... 91
System typów w C# ...................................................................................................... 92
Typy wartościowe ......................................................................................................... 92
System.ValueType ................................................................................................... 94
Konstruktory domyślne ............................................................................................ 94
Typy strukturalne .................................................................................................... 94
Typy proste ............................................................................................................. 95
Typy całkowitoliczbowe ............................................................................................ 96
Określanie typów .................................................................................................... 97
Typy zmiennoprzecinkowe ........................................................................................ 98
Typy dziesiętne ....................................................................................................... 98
Typ bool ................................................................................................................. 99
Typy wyliczeniowe ................................................................................................... 99
Typy referencyjne ......................................................................................................... 99
Typy klas .............................................................................................................. 100
Typ object ............................................................................................................ 101
Typ string ............................................................................................................. 101
Typy tablicowe ...................................................................................................... 101
Typy delegacji ....................................................................................................... 101
Typ null ................................................................................................................ 101
Pakowanie i odpakowywanie .................................................................................. 101
Typy nullable ......................................................................................................... 102
Podsumowanie .......................................................................................................... 103
Rozdział 7. Zmienne ................................................................................................................................. 105
Czym są zmienne? ..................................................................................................... 105
Nie wszystkie zmienne tworzy się w ten sam sposób ............................................... 105
Kategorie zmiennych .................................................................................................. 106
Zmienne statyczne ................................................................................................ 107
Elementy tablicy .................................................................................................... 107
Zmienne instancji .................................................................................................. 108
Parametry wartości ............................................................................................... 109
Parametry referencyjne .......................................................................................... 109
Parametry wyjściowe ............................................................................................. 110
Zmienne lokalne ................................................................................................... 111
Wartości domyślne ..................................................................................................... 111
Przypisania niewątpliwe .............................................................................................. 111
Zmienne zainicjalizowane ....................................................................................... 112
Zmienne niezainicjalizowane .................................................................................. 112
Podsumowanie .......................................................................................................... 121
Rozdział 8. Przekształcenia ................................................................................................................... 123
Przekształcenia niejawne ............................................................................................ 123
Przekształcenia tożsamościowe ............................................................................. 124
Niejawne przekształcenia liczbowe ......................................................................... 124
Niejawne przekształcenia wyliczeniowe ................................................................... 125
Niejawne przekształcenia referencyjne .................................................................... 125
8
C# 2005. Warsztat programisty
Przekształcenia typu opakowywanie ........................................................................ 126
Niejawne przekształcenia parametrów typów ........................................................... 127
Niejawne przekształcenia wyrażeń stałych ............................................................... 127
Niejawne przekształcenia definiowane przez użytkownika ......................................... 127
Przekształcenia jawne ................................................................................................. 128
Jawne przekształcenia liczbowe .............................................................................. 128
Jawne przekształcenia wyliczeniowe ....................................................................... 130
Jawne przekształcenia referencyjne ........................................................................ 131
Przekształcenia typu odpakowywanie ...................................................................... 132
Jawne przekształcenia parametrów typu .................................................................. 132
Jawne przekształcenia definiowane przez użytkownika .............................................. 132
Przekształcenia standardowe ...................................................................................... 132
Standardowe przekształcenia niejawne ................................................................... 133
Standardowe przekształcenia jawne ........................................................................ 133
Przekształcenia definiowane przez użytkownika ....................................................... 133
Przekształcenia metod anonimowych ........................................................................... 134
Przekształcenia grup metod ........................................................................................ 134
Przekształcenia typu null ............................................................................................. 135
Przekształcenia dopuszczające wartość pustą ......................................................... 135
Podsumowanie .......................................................................................................... 136
Rozdział 9. Wyrażenia ............................................................................................................................. 137
Klasyfikacja wyrażeń ................................................................................................... 137
Wyniki wyrażeń ..................................................................................................... 138
Wartości wyrażeń ....................................................................................................... 138
Wyrażenia i operatory ................................................................................................. 138
Trzy rodzaje operatorów ......................................................................................... 139
Priorytet i
łączność
operatorów ............................................................................... 139
Przeciążanie operatorów ........................................................................................ 141
Operatory rozszerzone ........................................................................................... 144
Wyszukiwanie składowej ............................................................................................. 146
Typy bazowe ......................................................................................................... 147
Składowe funkcyjne .................................................................................................... 147
Wyrażenia podstawowe ............................................................................................... 151
Literały ................................................................................................................. 152
Nazwy proste ........................................................................................................ 152
Wyrażenia nawiasowe ............................................................................................ 152
Dostęp do składowej ............................................................................................. 152
Wyrażenia wywołania ............................................................................................. 153
Dostęp do elementu .............................................................................................. 154
Wyrażenie wartości domyślnej ................................................................................ 157
Metody anonimowe ............................................................................................... 157
Wyrażenia jednoargumentowe ..................................................................................... 158
Wyrażenia rzutowania ................................................................................................. 158
Operatory arytmetyczne .............................................................................................. 158
Operatory przesunięcia ............................................................................................... 159
Operatory relacyjne ..................................................................................................... 159
Operatory logiczne ...................................................................................................... 160
Logiczne operatory warunkowe .................................................................................... 161
Operator null coalescing ............................................................................................. 161
Operatory przypisania ................................................................................................. 162
Zgłoś jeśli naruszono regulamin