C#. Leksykon kieszonkowy

Podobne dokumenty
Programowanie Komputerów

MATERIAŁY DO ZAJĘĆ II

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Microsoft IT Academy kurs programowania

Smarty PHP. Leksykon kieszonkowy

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Programowanie C# mgr in. Dariusz Ku. p. 119A

Podstawy i języki programowania

Powtórka algorytmów. Wprowadzenie do języka Java.

Języki i metodyka programowania. Wprowadzenie do języka C

Zmienne, stałe i operatory

Java Podstawy. Michał Bereta

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1 Podstawy c++ w pigułce.

Powtórka algorytmów. Wprowadzenie do języka Java.

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Wykład 2 Składnia języka C# (cz. 1)

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

MySQL. Darmowa baza danych. Æwiczenia praktyczne

Podstawy programowania skrót z wykładów:

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

2 Przygotował: mgr inż. Maciej Lasota

Klasy cd. Struktury Interfejsy Wyjątki

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Typ użyty w deklaracji zmiennej decyduje o rodzaju informacji, a nazwa zmiennej symbolicznie opisuje wartość.

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Wykład 3 Składnia języka C# (cz. 2)

Metodyka programowania. Podstawy C#

Język C zajęcia nr 11. Funkcje

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy

Algorytmy i struktury danych. wykład 1

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

Pracownia Komputerowa wykład VI

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Materiały pomocnicze do wykładu 3 - Elementy języka Java

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład 5 Okna MDI i SDI, dziedziczenie

Podstawy programowania w języku C

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

C++. Æwiczenia zaawansowane

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

1 Podstawy c++ w pigułce.

Java. Æwiczenia praktyczne

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Podstawowe części projektu w Javie

Czym jest stos i sterta?

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy Instrukcja selekcji if-else

Programowanie obiektowe

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Struktury, unie, formatowanie, wskaźniki

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

C++. Leksykon kieszonkowy

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

MySQL. Leksykon kieszonkowy

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Powtórka algorytmów. Wprowadzenie do języka Java.

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Pracownia Komputerowa wyk ad VI

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

( wykł. dr Marek Piasecki )

C++ wprowadzanie zmiennych

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Różności w C++ Marek Pudełko

Wykład 2. Różnice pomiędzy językiem C++ a C#

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia

Język ludzki kod maszynowy

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści

Wstęp do programowania

Typy danych. Przemysław Gawroński D-10, p lutego Wykład 1. (Wykład 1) Typy danych 25 lutego / 11

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

Typy danych, zmienne i tablice. Tomasz Borzyszkowski

Metodyki i Techniki Programowania MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

Programowanie współbieżne i rozproszone

Python wstęp do programowania dla użytkowników WCSS

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Oczywiście plik musi mieć rozszerzenie *.php

Transkrypt:

IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWO CIACH ZAMÓW CENNIK CZYTELNIA SPIS TRE CI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY KSI EK ONLINE C#. Leksykon kieszonkowy Autorzy: Peter Drayton, Ben Albahari, Ted Neward T³umaczenie: Przemys³aw Steæ ISBN: 83-7361-082-0 Tytu³ orygina³u: C# Language Pocket Reference Format: B5, stron: 146 Ksi¹ ka C#. Leksykon kieszonkowy dostarcza programistom zwiêz³ego opisu 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 sk³adniowe, a ponadto u³atwi poruszanie siê po rodowisku.net Framework. Ksi¹ ka ta zawiera: Opis jêzyka C# zawieraj¹cy regu³y sk³adniowe dotycz¹ce s³ów kluczowych, deklaracji i instrukcji 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 rodowiska.net Tabele opisuj¹ce sk³adniê wyra eñ regularnych, specyfikatory formatu oraz 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 wartościowe...ś...10 Typy referencyjne...ś...11 Typy predefiniowane... 16 Typy całkowite...ś...16 Typy zmiennoprzecinkowe...ś...18 Typ dziesiętny (decimal)...ś...19 Typ znakowy (char)...ś...20 Typ logiczny (bool)...ś...21 Typ object...ś...22 Typ łańcuchowy (string)...ś...22 Tablice... 23 Tablice wielowymiarowe...ś...24 Lokalne deklaracje tablic i deklaracje tablic jako pól...25 Długość i rząd tablicy...ś...25 Kontrola zakresów...ś...25 Konwersje tablic...ś...26 Zmienne i parametry... 26 Określone przypisanie...ś...26 Wartości domyślne...ś...27 Parametry...ś...28 Wyrażenia i operatory... 31 Priorytet operatorów...ś...31 Operatory kontroli przepełnienia arytmetycznego...34

Instrukcje... 34 Instrukcje wyrażeniowe...ś...35 Instrukcje deklaracyjne...ś...35 Instrukcje wyboru...ś...36 Instrukcje pętli...ś...39 Instrukcje skoku...ś...41 Przestrzenie nazw... 44 Pliki...ś...ś...44 Wykorzystanie przestrzeni nazw...ś...45 Klasy... 48 Słowo kluczowe this...ś...51 Pola...ś...ś...52 Stałe...ś...ś...52 Właściwości...ś...54 Indeksatory...ś...55 Metody...ś...ś.56 Konstruktory egzemplarzy...ś...57 Konstruktory statyczne...ś...59 Destruktory i finalizery...ś...60 Typy zagnieżdżone...ś...61 Modyfikatory dostępu... 62 Ograniczenia modyfikatorów dostępu...64 Struktury... 65 Interfejsy... 66 Definiowanie interfejsu...ś...67 Implementacja interfejsu...ś...68 Wykorzystanie interfejsu...ś...68 Rozszerzanie interfejsu...ś...69 Jawna implementacja interfejsu...ś...69 Ponowna implementacja interfejsu...ś...70 Konwersje interfejsów...ś...71 Wyliczenia... 71 Operatory wyliczeń...ś...73 Konwersje wyliczeń...ś...73

Delegaty... 74 Delegaty zbiorowe...ś...74 Zdarzenia... 76 Definiowanie delegata dla zdarzenia...ś.76 Przechowywanie danych zdarzenia z wykorzystaniem klasśy EventArgs...ś...76 Deklaracja i wywoływanie zdarzenia...ś77 Reagowanie na zdarzenie z wykorzystaniem procedury obsługi zdarzenia...ś...78 Akcesory zdarzenia...ś...79 Przeciążanie operatorów... 80 Implementacja równości wartości...ś...80 Logiczne pary operatorów...ś...82 Niestandardowe konwersje jawne i niejawne...82 Operatory przeciążalne pośrednio...ś...83 Instrukcje try i wyjątki... 84 Wyjątki...ś...ś.84 Klauzula catch...ś...86 Blok finally...ś...87 Główne właściwości klasy System.Exception...88 Atrybuty... 89 Klasy atrybutów...ś...90 Parametry nazwane i pozycyjne...ś...90 Elementy docelowe atrybutów...ś...91 Zastosowanie kilku atrybutów...ś...92 Kod niebezpieczny i wskaźniki... 92 Podstawowe informacje o wskaźnikach...92 Kod niebezpieczny...ś...93 Instrukcja fixed...ś...94 Operator wskaźnikowego dostępu do składowych...95 Słowo kluczowe stackalloc...ś...95 Void*...ś...ś...96 Wskaźniki do kodu niezarządzanego...ś96 Dyrektywy preprocesora... 97

Opis biblioteki Framework Class Library... 98 Typy rdzenne...ś...99 Tekst...ś...ś...100 Kolekcje...ś...100 Strumienie i operacje wejścia-wyjścia...101 Praca sieciowa...ś...101 Wątki...ś...ś..102 Bezpieczeństwo...ś...102 Refleksje i metadane...ś...103 Złożenia...ś...104 Serializacja...ś...104 Zdalne wykorzystanie obiektów...ś...104 Usługi WWW...ś...105 Dostęp do danych...ś...106 XML...ś...ś...106 Grafika...ś...107 Rozbudowane aplikacje klienckie...ś...107 Aplikacje WWW...ś...108 Globalizacja...ś...109 Konfiguracja...ś...109 Zaawansowane usługi komponentowe...109 Diagnostyka i testowanie...ś...110 Współpraca z kodem niezarządzanym...110 Obsługa kompilatora i narzędzi...ś...111 Funkcje środowiska uruchomieniowego...112 Rodzime funkcje systemu operacyjnego...112 Przestrzenie nazw a złożenia... 112 Wyrażenia regularne... 120 Specyfikatory formatu... 124 Specyfikatory formatu wizualnego...ś..126 Specyfikatory formatu typu DateTime...127 Opcje kompilatora języka C#... 129 Istotne narzędzia środowiska.net... 134 Skorowidz... 139

Opakowywanie i odpakowywanie typów wartościowych Aby można było wykonywać wspólne operacje przeprowadzane zarówno na typach referencyjnych, jak i wartościowych każdy typ wartościowy posiada odpowiadający mu ukryty typ referencyjny. Zostaje on utworzony w przypadku przypisania typu wartościowego do egzemplarza typu System.Object lub do interfejsu. Proces ten zwany jest opakowywaniem (ang. boxing). Typ wartościowy można rzutować do klasy object (wyjściowej klasy bazowej dla wszystkich typów wartościowych i referencyjnych) lub do implementowanego przez niego interfłejsu. W zaprezentowanym tu przykładzie opakowujemy typ wartościowy int w odpowiadający mu typ referencyjny, a następnie odpakowujemy go: class Test { static void Main () { int x = 9; object o = x; // opakuj typ int int y = (int)o; // odpakuj typ int } } Podczas opakowywania typu wartościowego tworzony jest nowy typ referencyjny, który przechowywać będzie kopię opakowywanego typu. Operacja odpakowania powoduje przekopiowanie wartości z typu referencyjnego z powrotem do typu wartościowego. Wymaga ona jawnego rzutowania, podczas którego wykonywane jest sprawdzenie, czy docelowy typ wartościowy jest zgodny z typem zawartym w typie referencyjnym. W przypadku niepomyślnego wyniku tego sprawdzenia zgłaszany jest wyjątek InvalidCastException. Nie musimy się martwić o to, co stanie się z opakowanymi obiektami, gdy przestaniemy z nich korzy- Typy predefiniowane 3

stać poradzi sobie z nimi za nas mechanizm odśmiecania pamięci. Dobrym przykładem operacji opakowania i odpakowania jest zastosowanie klas kolekcji (ang. collection classes). W następującym fragmencie kodu wykorzystujemy klasę Queue w połączeniu z typami wartościowymi: 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 predefiniowane w języku C# są nazwami zastępczymi typów występujących w przestrzeni nazw System. Na przykład, pomiędzy następującymi dwoma instrukcjami istnieje jedynie różnica składniowa: int i = 5; System.Int32 i = 5; Typy całkowite Typy całkowite oraz ich właściwości przedstawia zamieszczona poniżej tabela. 4 C#. Leksykon kieszonkowy

W przypadku typów całkowitych bez znaku, o szerokości n bitów, możliwe wartości należą do zakresu od 0 do 2 n 1. W przypadku typów całkowitych ze znakiem, o takiej samej szerokoś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), możliwe wartości mieszczą się w zakresie od 2 n 1 do 2 n 1 1. W literałach całkowitych stosować można notację dziesiętną lub szesnastkową: int x = 5; ulong y = 0x1234AF; // w przypadku liczb szesnastkowych stosujemy przedrostek 0x W przypadku, gdy dany literał całkowity jest poprawnył dla kilku możliwych typów całkowitych, typ domyślny wybierany jest w następującej kolejności: int, uint, long oraz ulong. W celu jawnego określenia wybranego typu można użyć następujących przyrostków: U uint lub ulong L long lub ulong UL ulong Typy predefiniowane 5

Konwersje całkowite Niejawna konwersja pomiędzy typami całkowitymi jest dozwolona w przypadku, gdy typ, na który chcemy konwertować, zawiera wszystkie możliwe wartości typu konwertowanego. W przeciwnym razie konieczna jest konwersja jawna. Możemy, na przykład, niejawnie skonwertować typ int na typ long, lecz typ int na typ short musimy już konwertować 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 może pomieścić wartości z zakresu od około ±1,5 10 45 do około ±3,4 10 38, z dokładnością do siedmiu cyfr znaczących. Typ double może pomieścić wartości z zakresu od około ±5,0 10 324 do około ±1,7 10 308, z dokładnością do 15 16 cyfr znaczących. Typy zmiennoprzecinkowe mogą przechowywać wartości specjalnie +0, 0, +,, NaN (ang. not a number wartość nieliczbowa). Reprezentują one wyniki takich operacji matematycznych jak dzielenie przez zero. Typy float oraz double stanowią implementację specyfikacji typów formatu IEEE 754, obsługiwłaną przez prawie wszystkie procesory, a zdefiniowaną przez organizację IEEE w witrynie http://www.ieee.org. 6 C#. Leksykon kieszonkowy

W literałach zmiennoprzecinkowych stosować można notację dziesiętną lub wykładniczą. Literał typu float wymaga dołączenia przyrostka f lub F. Do literału typu double można (lecz nie jest to koniecznie) dodać przyrostek d lub D. float x = 9.81f; double y = 7E-02; // 0.07 Konwersje zmiennoprzecinkowe Niejawna konwersja typu float na typ double nie powoduje utraty informacji i jest dozwolona lecz nigdy na odwrót. Dla zapewnienia czytelności dozwolona jest również konwersja typów int, uint i long na typ float oraz typu long na typ double: int sila = 2; int przesuniecie = 3; float x = 9.53f * sila - przesuniecie; Jeśli w przykładzie tym użyjemy większych wartości, może nastąpić utrata precyzji. Jednak możliwy zakres wartości nie jest okrojony, ponieważ najniższa i najwyższa wartość zarówno typu float, jak i double, przekraczają najniższą i najwyższą wartość typów int, uint czy long. Wszystkie pozostałe konwersje pomiędzy typami całkowitymi a zmiennoprzecinkowymi muszą być jawne: float x = 3.53f; int przesuniecie = (int)x; Typ dziesiętny (decimal) Typ decimal może przechowywać wartości z zakresu od ±1,0 10 28 do około ±7,9 10 28, przy użyciu 28 29 cyfr znaczących. Typ decimal zawiera 28 cyfr oraz położenie przecinka oddzielającego części dziesiętne. W przeciwieństwie do wartości zmien- Typy predefiniowane 7

noprzecinkowej typ ten charakteryzuje się większą dokładnością, lecz mniejszym zakresem. Przydatny jest on zwykle w obliczeniach finansowych, gdzie połączenie jego wysokiej dokładności oraz możliwości zapisania liczby dziesiętnej bez błędów zaokrąglenia jest bardzo cenne. Na przykład liczba 0,1 zostanie za pomocą typu decimal przedstawiona dokładnie, lecz jeśli użyjemy do jej zapisania typu zmiennoprzecinkowego, jej reprezentacją będzie liczba dwójkowa okresowa. W przypadku typu decimal nie istnieją pojęcia wartości +0, 0, +, czy NaN. Literał dziesiętny wymaga dołączenia przyrostka m lub M. decimal x = 80603.454327m; // przechowuje dokładną wartość Konwersje typu decimal Dozwolona jest niejawna konwersja wszystkich typów całkowitych na typ dziesiętny (decimal), ponieważ typ ten reprezentować może dowolną wartość całkowitą. Konwersja typu decimal na typ zmiennoprzecinkowy (i odwrotnie) wymaga konwersji jawnej, ponieważ typy zmiennoprzecinkowe posiadają większy zakres niż typ dziesiętny, ten zaś posiada większą dokładność niż typy zmiennoprzecinkowe. Typ znakowy (char) Typ w języku C# Typ systemowy Rozmiar char System.Char 2 bajty Typ char reprezentuje znak w formacie Unicode. Literał typu char może być albo znakiem prostym, albo znakiem w formacie Unicode, albo znakiem sterującym (ang. escape character). We wszystkich tych przypadkach użyty jako taki literał znak powinien być ujęty w apostrofy: 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 zebrano 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 Alarm 0x0007 \b Znak cofania 0x0008 \f Wysuw strony 0x000C \n Nowy wiersz 0x000A \r Powrót karetki 0x000D \t Tabulacja pozioma 0x0009 \v Tabulacja pionowa 0x000B Konwersje typu char Niejawna konwersja typu char na większość typów numerycznych jest zwykle wykonywana, przy czym jest ona zależna od tego, czy dany typ numeryczny może pomieścić typ short bez znaku. Jeśli nie konieczna jest konwersja 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 wartością logiczną, której przypisać można literał true lub false. Chociaż wartość boolowska wymaga tylko jednego bitu (0 lub 1), zajmuje ona 1 bajt pamięci, gdyż jest to minimalna porcja, która może podlegać adresowaniu w przypadku większości archiłtektur procesorów. Każdy element w tablicy boolowskiej zajmuje dwa bajty pamięci. Konwersje typu bool Nie są możliwe jakiekolwiek konwersje wartości boolowskich na typy numeryczne i odwrotnie. Typ object Typ w języku C# Typ systemowy Rozmiar object System.Object 0-bajtowy/8-bajtowy narzut Klasa object jest wyjściowym typem bazowym zarówno dla typów wartościowych, jak i referencyjnych. Typy wartościowe nie zawierają narzutu pamięci pochodzącego od obiektu. Typy referencyjne, które przechowywane są na stercie, z natury wymagają narzutu. W środowisku uruchomieniowym.net egzemplarz typu referencyjnego posiada 8-bajtowy narzut, który zawiera typ obiektu, a także informacje tymczasowe, dotyczące na przykład stanu blokady synchronizacji lub tego, czy dany obiekt został zabezpieczony przed usunięciem przez mechanizm odśmiecania pamięci. Warto wiedzieć, że każda referencja do egzemplarza typu referencyjnego zajmuje 4 bajty pamięci. 10 C#. Leksykon kieszonkowy