C_7_0_Leksykon_kieszonkowy_ch7lek.pdf

(607 KB) Pobierz
Tytuł oryginału: C# 7.0 Pocket Reference: Instant Help for C# 7.0 Programmers
Tłumaczenie: Przemysław Szeremiota
ISBN: 978-83-283-4077-0
© 2018 Helion SA
Authorized Polish translation of the English edition of C# 7.0 Pocket Reference
ISBN 9781491988534 © 2017 Joseph Albahari, Ben Albahari
This translation is published and sold by permission of O’Reilly Media, Inc., which
owns or controls all rights to publish and sell the same.
All rights reserved. No part of this book may be reproduced or transmitted in any
form or by any means, electronic or mechanical, including photocopying, recording or
by any information storage retrieval system, without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości
lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione.
Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie
książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie
praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi
bądź towarowymi ich właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej
książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej
odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne
naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION
nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe
z wykorzystania informacji zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/ch7lek
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis treści
Konwencje typograficzne
Korzystanie z przykładowych programów
Pierwszy program w C#
Składnia
System typów
Typy liczbowe
Typ wartości logicznych i operatory logiczne
Znaki i ciągi znaków
Tablice
Zmienne i parametry
Operatory i wyrażenia
Operatory na typach z dopuszczalną wartością pustą
Instrukcje
Przestrzenie nazw
Klasy
Dziedziczenie
Typ object
Struktury
Modyfikatory dostępu
Interfejsy
Typy wyliczeniowe
Typy zagnieżdżone
Uogólnienia
Delegaty
Zdarzenia
Wyrażenia lambda
Wyrażenia lambda a metody lokalne
Metody anonimowe
Wyjątki i instrukcja try
Enumeratory i iteratory
5
6
7
10
13
22
28
30
34
38
45
50
52
60
64
77
85
89
90
92
95
97
98
105
111
116
119
120
121
129
3
Kup książkę
Poleć książkę
Typy z dopuszczalną wartością pustą
Metody rozszerzające
Typy anonimowe
Krotki (C# 7)
LINQ
Wiązanie dynamiczne
Przeciążanie operatorów
Atrybuty
Atrybuty wywołania
Funkcje asynchroniczne
Wskaźniki i kod nienadzorowany
Dyrektywy preprocesora
Dokumentacja XML
Skorowidz
134
138
140
141
143
165
172
175
179
180
188
192
194
199
4
Spis treści
Kup książkę
Poleć książkę
Wiązanie dynamiczne
Wiązanie dynamiczne
oznacza przesunięcie momentu
wiązania
— procesu
ustalania typów, składowych i wywołań — od czasu kompilacji do czasu wyko-
nania programu. Wiązanie dynamiczne zostało wprowadzone do języka C#
w wersji 4.0; ma zastosowanie, kiedy
programista
wie, że pewna metoda, skła-
dowa czy operacja istnieje, ale
kompilator
nie ma o niej informacji. Do takich
sytuacji dochodzi często w ramach interoperacji z językami dynamicznymi
(jak IronPython) i obiektami COM, a także w sytuacjach typowych dla zasto-
sowań mechanizmów refleksji.
Typ dynamiczny jest deklarowany z kontekstowym słowem kluczowym
dynamic
:
dynamic d = GetSomeObject();
d.Quack();
Typ dynamiczny nakazuje kompilatorowi rozluźnić kontrolę typów; programi-
sta oczekuje, że w czasie wykonania zmienna typu
d
będzie posiadała metodę
Quack
. Jedyna trudność w tym, że w czasie kompilacji nie można tego potwier-
dzić. Ponieważ
d
jest zmienną typu dynamicznego, kompilator opóźni wiązanie
wywołania metody
Quack
na rzecz
d
do czasu wykonania programu. Aby lepiej
zrozumieć, co to oznacza, należałoby zdefiniować rozróżnienie pomiędzy
wią-
zaniem statycznym
i
dynamicznym.
Wiązanie statyczne a wiązanie dynamiczne
Klasycznym przykładem wiązania jest odwzorowanie nazwy występującej
w kompilowanym wyrażeniu na konkretną metodę czy składową. Na przykład
w poniższym wyrażeniu kompilator musi odszukać implementację metody o na-
zwie
Quack
:
d.Quack();
Wiązanie dynamiczne
165
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin