C Leksykon kieszonkowy


IDZ DO
IDZ DO
PRZYKŁADOWY ROZDZIAŁ
PRZYKŁADOWY ROZDZIAŁ
C#. Leksykon
SPIS TRE CI
SPIS TRE CI
kieszonkowy
KATALOG KSIĄŻEK
KATALOG KSIĄŻEK
Autorzy: Peter Drayton, Ben Albahari, Ted Neward
KATALOG ONLINE
KATALOG ONLINE Tłumaczenie: Przemysław Steć
ISBN: 83-7361-082-0
Tytuł oryginału: C# Language Pocket Reference
ZAMÓW DRUKOWANY KATALOG
ZAMÓW DRUKOWANY KATALOG
Format: B5, stron: 146
TWÓJ KOSZYK
TWÓJ KOSZYK
Książka  C#. Leksykon kieszonkowy dostarcza programistom zwięzłego opisu
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA
najbardziej innowacyjnego z języków rodowiska .NET. Zaprojektowana jako poręczny,
przeno ny przewodnik do codziennego użytku, stanowi niezbędną pomoc dla
programistów. Pomoże także Czytelnikowi przypomnieć sobie typowe wzorce
CENNIK I INFORMACJE
CENNIK I INFORMACJE
składniowe, a ponadto ułatwi poruszanie się po rodowisku .NET Framework.
Książka ta zawiera:
ZAMÓW INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
O NOWO CIACH
" Opis języka C# zawierający reguły składniowe dotyczące słów kluczowych,
deklaracji i instrukcji
ZAMÓW CENNIK
ZAMÓW CENNIK
" Wprowadzenie do systemu typów, w tym opis mechanizmu opakowywania
i odpakowywania pomiędzy typami referencyjnymi a typami warto ciowymi
" Zestawienie opcji kompilatora C# oraz przewodnik po istotnych narzędziach
CZYTELNIA
CZYTELNIA
rodowiska .NET
" Tabele opisujące składnię wyrażeń regularnych, specyfikatory formatu oraz
FRAGMENTY KSIĄŻEK ONLINE
FRAGMENTY KSIĄŻEK ONLINE
zestawienie przestrzeni nazw i odpowiadających im złożeń
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
Identyfikatory oraz słowa kluczowe.......................................... 8
Podstawowe elementy ............................................................... 9
Typy wartościowe i referencyjne ............................................ 10
Typy wart>ści>we....................................................................................10
Typy referencyjne.....................................................................................11
Typy predefiniowane............................................................... 16
Typy calk>wite .........................................................................................16
Typy zmienn>przecink>we ....................................................................18
Typ dziesiętny (decimal).........................................................................19
Typ znak>wy (char).................................................................................20
Typ l>giczny (b>>l)..................................................................................21
Typ >bject ..................................................................................................22
Typ lańcuch>wy (string).........................................................................22
Tablice...................................................................................... 23
Tablice wiel>wymiar>we........................................................................24
L>kalne deklaracje tablic i deklaracje tablic jak> pól..........................25
Dlug>ść i rząd tablicy..............................................................................25
K>ntr>la zakresów...................................................................................25
K>nwersje tablic .......................................................................................26
Zmienne i parametry .............................................................. 26
źkreśl>ne przypisanie.............................................................................26
Wart>ści d>myślne ..................................................................................27
Parametry ..................................................................................................28
Wyrażenia i operatory............................................................. 31
Pri>rytet >perat>rów ...............................................................................31
źperat>ry k>ntr>li przepelnienia arytmetyczneg> ............................34
Instrukcje................................................................................. 34
Instrukcje wyrażeni>we ..........................................................................35
Instrukcje deklaracyjne............................................................................35
Instrukcje wyb>ru ....................................................................................36
Instrukcje pętli ..........................................................................................39
Instrukcje sk>ku .......................................................................................41
Przestrzenie nazw ................................................................... 44
Pliki ............................................................................................................44
Wyk>rzystanie przestrzeni nazw ..........................................................45
Klasy........................................................................................ 48
Sl>w> klucz>we this................................................................................51
P>la.............................................................................................................52
Stale ............................................................................................................52
Wlaściw>ści...............................................................................................54
Indeksat>ry ...............................................................................................55
Met>dy.......................................................................................................56
K>nstrukt>ry egzemplarzy.....................................................................57
K>nstrukt>ry statyczne ...........................................................................59
Destrukt>ry i finalizery...........................................................................60
Typy zagnieżdż>ne..................................................................................61
Modyfikatory dostępu ............................................................. 62
źgraniczenia m>dyfikat>rów d>stępu.................................................64
Struktury................................................................................. 65
Interfejsy.................................................................................. 66
Defini>wanie interfejsu ...........................................................................67
Implementacja interfejsu.........................................................................68
Wyk>rzystanie interfejsu ........................................................................68
R>zszerzanie interfejsu............................................................................69
Jawna implementacja interfejsu.............................................................69
P>n>wna implementacja interfejsu .......................................................70
K>nwersje interfejsów .............................................................................71
Wyliczenia............................................................................... 71
źperat>ry wyliczeń .................................................................................73
K>nwersje wyliczeń.................................................................................73
Delegaty................................................................................... 74
Delegaty zbi>r>we ...................................................................................74
Zdarzenia................................................................................. 76
Defini>wanie delegata dla zdarzenia....................................................76
Przech>wywanie danych zdarzenia z wyk>rzystaniem klasy
ventęrgs..................................................................................................76
Deklaracja i wyw>lywanie zdarzenia...................................................77
Reag>wanie na zdarzenie z wyk>rzystaniem pr>cedury
>bslugi zdarzenia .....................................................................................78
ękces>ry zdarzenia .................................................................................79
Przeciążanie operatorów.......................................................... 80
Implementacja równ>ści wart>ści .........................................................80
L>giczne pary >perat>rów......................................................................82
Niestandard>we k>nwersje  jawne i niejawne ................................82
źperat>ry przeciążalne p>średni> ........................................................83
Instrukcje try i wyjątki........................................................... 84
Wyjątki.......................................................................................................84
Klauzula catch ..........................................................................................86
Bl>k finally ................................................................................................87
Glówne wlaściw>ści klasy System.xcepti>n......................................88
Atrybuty.................................................................................. 89
Klasy atrybutów.......................................................................................90
Parametry nazwane i p>zycyjne............................................................90
lementy d>cel>we atrybutów ..............................................................91
Zast>s>wanie kilku atrybutów ..............................................................92
Kod niebezpieczny i wskazniki ............................................... 92
P>dstaw>we inf>rmacje > wskaznikach...............................................92
K>d niebezpieczny...................................................................................93
Instrukcja fixed.........................................................................................94
źperat>r wskaznik>weg> d>stępu d> sklad>wych ...........................95
Sl>w> klucz>we stackall>c .....................................................................95
V>id* ..........................................................................................................96
Wskazniki d> k>du niezarządzaneg>...................................................96
Dyrektywy preprocesora ......................................................... 97
Opis biblioteki Framework Class Library............................... 98
Typy rdzenne............................................................................................99
Tekst.........................................................................................................100
K>lekcje....................................................................................................100
Strumienie i >peracje wejścia-wyjścia.................................................101
Praca sieci>wa.........................................................................................101
Wątki........................................................................................................102
Bezpieczeństw> ......................................................................................102
Refleksje i metadane ..............................................................................103
Zl>żenia ...................................................................................................104
Serializacja...............................................................................................104
Zdalne wyk>rzystanie >biektów .........................................................104
Uslugi WWW..........................................................................................105
D>stęp d> danych ..................................................................................106
XML..........................................................................................................106
Grafika .....................................................................................................107
R>zbud>wane aplikacje klienckie .......................................................107
ęplikacje WWW.....................................................................................108
Gl>balizacja.............................................................................................109
K>nfiguracja............................................................................................109
Zaawans>wane uslugi k>mp>nent>we..............................................109
Diagn>styka i test>wanie......................................................................110
Wspólpraca z k>dem niezarządzanym...............................................110
źbsluga k>mpilat>ra i narzędzi ..........................................................111
unkcje śr>d>wiska uruch>mieni>weg>............................................112
R>dzime funkcje systemu >peracyjneg> ............................................112
Przestrzenie nazw a złożenia................................................ 112
Wyrażenia regularne............................................................. 120
Specyfikatory formatu ........................................................... 124
Specyfikat>ry f>rmatu wizualneg> .....................................................126
Specyfikat>ry f>rmatu typu DateTime...............................................127
Opcje kompilatora języka C# ................................................ 129
Istotne narzędzia środowiska .NET...................................... 134
Skorowidz .............................................................................. 139
Opakowywanie i odpakowywanie
typów wartościowych
ęby mżżna bylż wykżnywać wspólne żperacje  przeprżwa-
dzane zarównż na typach referencyjnych, jak i wartżściżwych
 każdy typ wartżściżwy pżsiada żdpżwiadający mu ukryty
typ referencyjny. Zżstaje żn utwżrzżny w przypadku przypisania
typu wartżściżwegż dż egzemplarza typu System.Object lub
dż interfejsu. Prżces ten zwany jest opakowywaniem (ang. boxing).
Typ wartżściżwy mżżna rzutżwać dż klasy object (wyjściż-
wej klasy bazżwej dla wszystkich typów wartżściżwych i refe-
rencyjnych) lub dż implementżwanegż przez niegż interfejsu.
W zaprezentżwanym tu przykladzie żpakżwujemy typ wartż-
ściżwy int w żdpżwiadający mu typ referencyjny, a następnie
żdpakżwujemy gż:
class Test {
static void Main () {
int x = 9;
object o = x; // opakuj typ int
int y = (int)o; // odpakuj typ int
}
}
Pżdczas żpakżwywania typu wartżściżwegż twżrzżny jest nżwy
typ referencyjny, który przechżwywać będzie kżpię żpakżwy-
wanegż typu. źperacja żdpakżwania pżwżduje przekżpiżwanie
wartżści z typu referencyjnegż z pżwrżtem dż typu wartżściż-
wegż. Wymaga żna jawnegż rzutżwania, pżdczas któregż wykż-
nywane jest sprawdzenie, czy dżcelżwy typ wartżściżwy jest
zgżdny z typem zawartym w typie referencyjnym. W przypadku
niepżmyślnegż wyniku tegż sprawdzenia zglaszany jest wyjątek
InvalidCastException. Nie musimy się martwić ż tż, cż stanie
się z żpakżwanymi żbiektami, gdy przestaniemy z nich kżrzy-
Typy predefiniowane 3
stać  pżradzi sżbie z nimi za nas mechanizm żdśmiecania
pamięci.
Dżbrym przykladem żperacji żpakżwania i żdpakżwania jest za-
stżsżwanie klas kżlekcji (ang. collection classes). W następującym
fragmencie kżdu wykżrzystujemy klasę Queue w pżlączeniu
z typami wartżściżwymi:
using System;
using System.Collections;
class Test {
static void Main () {
Queue q = new Queue ();
q.Enqueue (1); // opakuj wartość typu int
q.Enqueue (2); // opakuj wartość typu int
Console.WriteLine ((int)q.Dequeue()); // odpakuj
wartość typu int
Console.WriteLine ((int)q.Dequeue()); // odpakuj
wartość typu int
}
}
Typy predefiniowane
Wszystkie typy predefiniżwane w języku C# są nazwami zastęp-
czymi typów występujących w przestrzeni nazw System. Na
przyklad, pżmiędzy następującymi dwżma instrukcjami istnieje
jedynie różnica skladniżwa:
int i = 5;
System.Int32 i = 5;
Typy całkowite
Typy calkżwite żraz ich wlaściwżści przedstawia zamieszczżna
pżniżej tabela.
4 C#. Leksykon kieszonkowy
W przypadku typów calkżwitych bez znaku, ż szerżkżści n bi-
tów, mżżliwe wartżści należą dż zakresu żd 0 dż 2n 1. W przy-
padku typów calkżwitych ze znakiem, ż takiej samej szerżkżści
Typ w języku C# Typ systemowy Rozmiar Ze znakiem
sbyte System.SByte
1 bajt Tak
short System.Int16
2 bajty Tak
int System.Int32
4 bajty Tak
long System.Int64
8 bajtów Tak
byte System.Byte
1 bajt Nie
ushort System.UInt16
2 bajty Nie
uint System.UInt32
4 bajty Nie
ulong System.UInt64
8 bajtów Nie
(n bitów), mżżliwe wartżści mieszczą się w zakresie żd  2n 1 dż
2n 1 1. W literalach calkżwitych stżsżwać mżżna nżtację dzie-
siętną lub szesnastkżwą:
int x = 5;
ulong y = 0x1234AF; // w przypadku liczb
szesnastkowych stosujemy przedrostek 0x
W przypadku, gdy dany literal calkżwity jest pżprawny dla kilku
mżżliwych typów calkżwitych, typ dżmyślny wybierany jest
w następującej kżlejnżści: int, uint, long żraz ulong. W celu
jawnegż żkreślenia wybranegż typu mżżna użyć następujących
przyrżstków:
U
uint lub ulong
L
long lub ulong
UL
ulong
Typy predefiniowane 5
Konwersje całkowite
Niejawna kżnwersja pżmiędzy typami calkżwitymi jest dżzwż-
lżna w przypadku, gdy typ, na który chcemy kżnwertżwać,
zawiera wszystkie mżżliwe wartżści typu kżnwertżwanegż.
W przeciwnym razie kżnieczna jest kżnwersja jawna. Mżżemy,
na przyklad, niejawnie skżnwertżwać typ int na typ long,
lecz typ int na typ short musimy już kżnwertżwać jawnie:
int x = 123456;
long y = x; // konwersja niejawna, nie ma utraty
informacji
short z = (short)x; // konwersja jawna, wartość x
zostaje "obcięta"
Typy zmiennoprzecinkowe
Typ w języku C# Typ systemowy Rozmiar
float System.Single
4 bajty
double System.Double
8 bajtów
Typ float mżże pżmieścić wartżści z zakresu żd żkżlż ą1,510 45
dż żkżlż ą3,41038, z dżkladnżścią dż siedmiu cyfr znaczących.
Typ double mżże pżmieścić wartżści z zakresu żd żkżlż ą5,0
10 324 dż żkżlż ą1,710308, z dżkladnżścią dż 15  16 cyfr zna-
czących.
Typy zmiennżprzecinkżwe mżgą przechżwywać wartżści spe-
cjalnie +0,  0, +",  ", NaN (ang. not a number  wartżść nielicz-
bżwa). Reprezentują żne wyniki takich żperacji matematycz-
nych jak dzielenie przez zerż. Typy float żraz double stanżwią
implementację specyfikacji typów fżrmatu I 754, żbslugiwaną
przez prawie wszystkie prżcesżry, a zdefiniżwaną przez żrga-
nizację I w witrynie http://www.ieee.org.
6 C#. Leksykon kieszonkowy
W literalach zmiennżprzecinkżwych stżsżwać mżżna nżtację
dziesiętną lub wykladniczą. Literal typu float wymaga dżlą-
czenia przyrżstka f lub F. Dż literalu typu double mżżna (lecz
nie jest tż kżniecznie) dżdać przyrżstek d lub D.
float x = 9.81f;
double y = 7E-02; // 0.07
Konwersje zmiennoprzecinkowe
Niejawna kżnwersja typu float na typ double nie pżwżduje
utraty infżrmacji i jest dżzwżlżna  lecz nigdy na żdwrót. Dla
zapewnienia czytelnżści dżzwżlżna jest również kżnwersja typów
int, uint i long na typ float żraz typu long na typ double:
int sila = 2;
int przesuniecie = 3;
float x = 9.53f * sila - przesuniecie;
Jeśli w przykladzie tym użyjemy większych wartżści, mżże na-
stąpić utrata precyzji. Jednak mżżliwy zakres wartżści nie jest
żkrżjżny, pżnieważ najniższa i najwyższa wartżść zarównż typu
float, jak i double, przekraczają najniższą i najwyższą wartżść
typów int, uint czy long. Wszystkie pżzżstale kżnwersje pż-
między typami calkżwitymi a zmiennżprzecinkżwymi muszą
być jawne:
float x = 3.53f;
int przesuniecie = (int)x;
Typ dziesiętny (decimal)
Typ decimal mżże przechżwywać wartżści z zakresu żd ą1,0
10 28 dż żkżlż ą7,91028, przy użyciu 28  29 cyfr znaczących.
Typ decimal zawiera 28 cyfr żraz pżlżżenie przecinka żddzie-
lającegż części dziesiętne. W przeciwieństwie dż wartżści zmien-
Typy predefiniowane 7
nżprzecinkżwej typ ten charakteryzuje się większą dżkladnżścią,
lecz mniejszym zakresem. Przydatny jest żn zwykle w żblicze-
niach finansżwych, gdzie pżlączenie jegż wysżkiej dżkladnżści
żraz mżżliwżści zapisania liczby dziesiętnej bez blędów zażkrą-
glenia jest bardzż cenne. Na przyklad liczba 0,1 zżstanie za pżmż-
cą typu decimal przedstawiżna dżkladnie, lecz jeśli użyjemy dż
jej zapisania typu zmiennżprzecinkżwegż, jej reprezentacją będzie
liczba dwójkżwa żkresżwa. W przypadku typu decimal nie
istnieją pżjęcia wartżści +0,  0, +",  " czy NaN.
Literal dziesiętny wymaga dżlączenia przyrżstka m lub M.
decimal x = 80603.454327m; // przechowuje dokładną
wartość
Konwersje typu decimal
Dżzwżlżna jest niejawna kżnwersja wszystkich typów calkż-
witych na typ dziesiętny (decimal), pżnieważ typ ten repre-
zentżwać mżże dżwżlną wartżść calkżwitą. Kżnwersja typu
decimal na typ zmiennżprzecinkżwy (i żdwrżtnie) wymaga
kżnwersji jawnej, pżnieważ typy zmiennżprzecinkżwe pżsia-
dają większy zakres niż typ dziesiętny, ten zaś pżsiada większą
dżkladnżść niż typy zmiennżprzecinkżwe.
Typ znakowy (char)
Typ w języku C# Typ systemowy Rozmiar
char System.Char
2 bajty
Typ char reprezentuje znak w fżrmacie Unicżde. Literal typu
char mżże być albż znakiem prżstym, albż znakiem w fżrma-
cie Unicżde, albż znakiem sterującym (ang. escape character). We
wszystkich tych przypadkach użyty jakż taki literal znak pżwi-
nien być ujęty w apżstrżfy:
8 C#. Leksykon kieszonkowy
'A' // znak prosty
'\u0041' // znak w kodzie Unicode
'\x0041' // znak w kodzie szesnastkowym unsigned
short
'\n' // znak sekwencji sterującej
Znaki sekwencji sterującej zebranż w tabeli 1.
Tabela 1. Znaki sekwencji sterującej
Znak Znaczenie Wartość
\'
Apostrof 0x0027
\"
Cudzysłów 0x0022
\\
Lewy ukośnik 0x005C
\0
Zero 0x0000
\a
Aiarm 0x0007
\b
Znak cofania 0x0008
\f
Wysuw strony 0x000C
\n
Nowy wiersz 0x000A
\r
Powrót karetki 0x000D
\t
Tabuiacja pozioma 0x0009
\v
Tabuiacja pionowa 0x000B
Konwersje typu char
Niejawna kżnwersja typu char na większżść typów numerycz-
nych jest zwykle wykżnywana, przy czym jest żna zależna żd
tegż, czy dany typ numeryczny mżże pżmieścić typ short bez
znaku. Jeśli nie  kżnieczna jest kżnwersja jawna.
Typ logiczny (bool)
Typ w języku C# Typ systemowy Rozmiar
Typy predefiniowane 9
bool System.Boolean
1 bajt/2 bajty
Typ bool jest wartżścią lżgiczną, której przypisać mżżna literal
true lub false.
Chżciaż wartżść bżżlżwska wymaga tylkż jednegż bitu (0 lub 1),
zajmuje żna 1 bajt pamięci, gdyż jest tż minimalna pżrcja, która
mżże pżdlegać adresżwaniu w przypadku większżści architektur
prżcesżrów. Każdy element w tablicy bżżlżwskiej zajmuje dwa
bajty pamięci.
Konwersje typu bool
Nie są mżżliwe jakiekżlwiek kżnwersje wartżści bżżlżwskich
na typy numeryczne i żdwrżtnie.
Typ object
Typ w języku C# Typ systemowy Rozmiar
object System.Object
0-bajtowy/8-bajtowy narzut
Klasa object jest wyjściżwym typem bazżwym zarównż dla
typów wartżściżwych, jak i referencyjnych. Typy wartżściżwe
nie zawierają narzutu pamięci pżchżdzącegż żd żbiektu. Typy
referencyjne, które przechżwywane są na stercie, z natury wy-
magają narzutu. W śrżdżwisku uruchżmieniżwym .NT egzem-
plarz typu referencyjnegż pżsiada 8-bajtżwy narzut, który zawiera
typ żbiektu, a także infżrmacje tymczasżwe, dżtyczące na przy-
klad stanu blżkady synchrżnizacji lub tegż, czy dany żbiekt zżstal
zabezpieczżny przed usunięciem przez mechanizm żdśmiecania
pamięci. Wartż wiedzieć, że każda referencja dż egzemplarza typu
referencyjnegż zajmuje 4 bajty pamięci.
10 C#. Leksykon kieszonkowy


Wyszukiwarka

Podobne podstrony:
Delphi Leksykon kieszonkowy?lplk
CSS Leksykon kieszonkowy csslk
informatyka excel 2007 pl leksykon kieszonkowy wydanie ii curt frye ebook
Rejestr Windows XP Leksykon kieszonkowy
3ds max Leksykon kieszonkowy
PHP4 Leksykon kieszonkowy php4lk
Linux Leksykon kieszonkowy linlk
JDBC Leksykon kieszonkowy
MySQL Leksykon kieszonkowy msqllk
Excel 03 PL Funkcje Leksykon kieszonkowy exfulk
VBA dla Excela 02 03 Leksykon kieszonkowy vba3lk

więcej podobnych podstron