PV178 – Úvod do vývoje v C#/.NET

Slides:



Advertisements
Podobné prezentace
Standardní knihovní funkce pro práci s textovými řetězci
Advertisements

VISUAL BASIC Práce s řetězci Použitá literatura: Kvoch: Visual Basic 4.
VÝVOJ PROGRAMOVACÍCH JAZYKŮ PERSPEKTIVY ELEKTRONIKY 3. Celostátní seminář, 18. března 2003 Ing. Pavel Pokorný UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ Fakulta technologická.
Programování funkcí v Excelu
HYPERTEXT PREPROCESSOR. PROGRAMOVÁNÍ. DEFINICE POJMŮ Problém Problém nevyřešený, nežádoucí stav obvykle vyžaduje nějaké řešení Neřešitelný problém Neřešitelný.
OOP OOP (Object Oriented Programming)
Modelování procesů pomocí workflow
Algoritmizace a programování Datové typy v Delphi - 05
C# pro začátečníky Mgr. Jaromír Osčádal
PB069 – Vývoj desktopových aplikací v C#/.NET
Programování v C++ Cvičení.
Druhé cvičení Vytváření identifikátorů Datové typy
Materiály k přednášce Úvod do programování Ondřej Čepek.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
C# - datové typy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Základy algoritmizace a programování
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
Modelovací jazyk UML. Jazyk UML je víceúčelový modelovací jazyk, který byl vyvinut speciálně pro účely softwarového inženýrství. Obsahuje formalizovaný.
C# - Exceptions (výjimky)
PHP – Základy programování
Objektové programování
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
Datové typy a práce s nimi
08/04/20151 Delegáty (1) Delegát (delegate) je datový typ, který definuje signaturu metody Delegáty bývají rovněž označovány jako typo- vě bezpečné ukazatele.
C# - Úvod Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Počítače a programování 1
Cvičení.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
Návrh a tvorba WWW Cvičení 4
11/04/20151 Soubory a proudy (1) Soubor (file) označuje pojmenovanou sadu dat uloženou na externím záznamovém médiu (např. HDD, CD, DVD, BD, tape) Proud.
Dokumentace objektů a zveřejnění funkcí
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
Algoritmizace a programování Objektově orientované programování - 16 Mgr. Josef Nožička IKT Algoritmizace a programování
IB111 Programování a algoritmizace
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Geoinformační technologie Geografické informační systémy (GIS) Výukový materiál pro gymnázia a ostatní střední školy © Gymnázium, Praha 6, Nad Alejí 1952.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
13/04/20151 Datový typ třída – class (1) Datový typ definovaný uživatelem Poskytuje mechanismus pro modelování entit, s nimiž manipulují aplikace Charakterizuje.
Databázové modelování
Metodika objektového přístupu při tvorbě překladačů. Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Principy OOP Objektově orientované programování vychá-zí ze třech základních principů (rysů): zapouzdření (encapsulation) dědičnost (inheritance) polymorfismus.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
C# - konverze datových typů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
OPERAČNÍ SYSTÉMY.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
14. června 2004Michal Ševčenko Architektura softwarového systému DYNAST Michal Ševčenko VIC ČVUT.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
doc. RNDr. Zdeněk Botek, CSc.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
23/04/20151 LINQ (1) LINQ (Language Integrated Query) je součást MS.NET Frameworku umožňující jednotný přístup k datům a jejich zpracování deklarativ-
Visual Basic - programování
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2015.
Informatika (1) Počítač - základní pojmy HW a SW4 OS MS-DOS, Windows 95, 982 Org. souborů na disku, operační paměť2 Aplikace Malování, Word8 Základy programování.
.NET framework platforma Jiří Pokorný
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
Počítače a programování 2
Vypracoval / Roman Málek
PB069 – Vývoj desktopových aplikací v C#/.NET
PV178 – Úvod do vývoje v C#/.NET
OOP OOP (Object Oriented Programming)
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Oblast platnosti identifikátoru (1)
C# přehled vlastností.
Transkript prezentace:

PV178 – Úvod do vývoje v C#/.NET RNDr. Jaroslav PELIKÁN, Ph.D. katedra počítačových systémů a komunikací Fakulta informatiky Masarykovy univerzity Botanická 68a, 602 00 BRNO Kanc.: A209,  : +420 – 549 495 751 E-mail: pelikan@fi.muni.cz http://www.fi.muni.cz/usr/pelikan

Cíle předmětu Osvojit si základní návyky tvorby kvalitního kódu v jazyce C# Po absolvování tohoto předmětu by student měl: znát základní kroky a techniky doprovázející proces vývoje aplikací v C#/.NET ovládat prostředí Visual Studio 2013 znát hlavní rysy a programové konstrukce pro-gramovacího jazyka C# být schopen psát kvalitní objektový kód 10/04/2017

Organizace předmětu Rozsah (hodinová dotace): 1/2 Přednáška: Cvičení: 2 hodiny týdně první polovinu semestru (7 týdnů) Cvičení: celý semestr Ve druhé polovině semestru jsou plánovány přednášky (vedené dalšími vyučujícími) pro zájemce na vybraná témata 10/04/2017

Používané technologie Výuka probíhá s využitím: programovacího jazyka C# platformy MS .NET Framework vývojového prostředí MS Visual Studio 2013 studenti Fakulty informatiky mohou některou z plných verzí (Professional, Premium, Ultimate) získat přes MSDN Academic Alliance 10/04/2017

Vstupní předpoklady Znalost: základů programování a algoritmizace syntaxe programovacího jazyka C/C++ nebo Java základů objektově orientovaného programování – na úrovni předmětu: PB161 Programování v jazyce C++ nebo PB162 Programování v jazyce Java 10/04/2017

Osnova (1) .NET Framework a jeho architektura Charakteristika jazyka C# Typový systém v .NET: předdefinované typy hodnotové typy referenční typy nulovatelné typy (null coalescing operator) implicitně typované proměnné 10/04/2017

Osnova (2) Typ třída a její členy: Jmenné prostory přístupnost ke členům třídy datové položky metody konstruktory instancí – vytvoření objektu destruktory konstanty statické členy třídy (metody) a statické třídy vlastnosti Jmenné prostory 10/04/2017

Osnova (3) Předávání parametrů metodám: Přetěžování metod parametry předávané hodnotou parametry předávané odkazem výstupní parametry Přetěžování metod Metody s proměnným počtem parametrů Principy OOP: zapouzdření dědičnost (skrývání metod) polymorfismus (virtuální metody, předefinování metody) 10/04/2017

Osnova (4) Abstraktní metody a třídy Rozhraní Výjimky Rozšiřující metody Výčtové typy Pole: jednorozměrná vícerozměrná pravidelná vícerozměrná nepravidelná 10/04/2017

Osnova (5) Řetězce Struktury Indexery Generické datové typy Kolekce: negenerické generické Iterátory Delegáty (anonymní metody, lambda výrazy) 10/04/2017

Osnova (6) Události Práce se soubory (proudy): LINQ Kolokvium, zápočet textové soubory binární soubory práce se souborovým systémem LINQ Kolokvium, zápočet 10/04/2017

Literatura Pelikán, Jaroslav: Prezentace k přednáškám z před-mětu PV178 Úvod do vývoje v C#/.NET, http://www.fi.muni.cz/usr/pelikan Richter, Jeffrey: CLR via C#, 3rd ed. Redmond: Microsoft Press, 2010, ISBN: 9780735627048. Skeet, Jon: C# in depth, 2nd ed. Stamford: Manning, 2011, ISBN: 9781935182474. Marguerie, Fabrice, Steve Eichert, Jim Wooley: Linq in action, Edited by Matt Warren, Greenwich: Manning, 2008, ISBN: 9781933988160. Sharp, John: Microsoft Visual C# 2010, Computer Press 2010, ISBN: 978-80-251-3147-3. 10/04/2017

Ukončení předmětu (1) V průběhu semestru je možné získat maxi-málně 100 bodů: 42 bodů: domácí úkoly (6 úkolů po 7 bodech) 38 bodů: projekt (nutné získat alespoň 20 bodů) 20 bodů: testy na cvičeních Při ukončení předmětu: kolokviem je zapotřebí získat min. 60 bodů zápočtem je zapotřebí získat min. 50 bodů 10/04/2017

Ukončení předmětu (2) Domácí úkoly: Projekt: v průběhu semestru bude zadáno 6 domácích úkolů z probraných okruhů (po 7 bodech) o zadání prvního úkolu a způsobu zveřejňování dalších budete informováni e-mailem na vypracování budete mít vždy alespoň 7 dní od zveřejnění Projekt: nutno odevzdat samostatný projekt prokazující vaši schopnost vytvořit funkční a použitelnou aplikaci 10/04/2017

Ukončení předmětu (3) možné získat maximálně 38 bodů nutné získat minimálně 20 bodů projekty budou vypsány jako tematický balík v ISu k vybranému projektu se musíte přihlásit nejpoz-ději do 31. 3. 2015 je možné navrhnout (zvolit si) vlastní projekt v týdnu od 20. 4. 2015 proběhne kontrola projek-tů odevzdáním návrhu struktury: typicky ve formě UML diagramu tříd (pokud se u studenta předpokládá znalost UML) vyhotovený projekt musí být odevzdaný do 5. 6. 2015 10/04/2017

Ukončení předmětu (4) Testy: Cvičení: na začátku většiny cvičení formou odpovědníku v ISu, který je zaměřený na téma poslední (popř. předposlední) před-nášky za správné vyplnění odpovědníků je možné získat celkem maximálně 20 bodů Cvičení: docházka na cvičení nebude kontrolována neúčastí na cvičeních přicházíte o možnost bodů z testů 10/04/2017

.NET Framework (1) Softwarová platforma vyvinutá firmou Micro-soft, která podporuje vytváření a spouštění aplikací a webových služeb VB C++ C# J# … Common Language Specification ASP.NET Web Forms Web Services Windows Forms Architektura .NET Framework 2.0 Visual Studio .NET ADO.NET & XML Base Class Library Common Language Runtime Operační systém 10/04/2017

.NET Framework (2) CLR – Common Language Runtime: běhové prostředí realizující základní infrastruk-turu, nad kterou je celý framework vybudován provádí spouštění všech programů napsaných pro .NET Framework (nezávisle na použitém programovacím jazyku) lze přirovnat k virtuálnímu stroji u jazyka Java zajišťuje např.: spouštění programů správu paměti (včetně automatické garbage collec-tion), výpočetních vláken (threads), výjimek typovou bezpečnost 10/04/2017

.NET Framework (3) BCL – Base Class Library: ADO.NET & XML: knihovna dodávaná s .NET Frameworkem obsahuje třídy sloužící pro práci např. s: grafikou soubory databází počítačovou sítí ADO.NET & XML: knihovna pro přístup k datům a pro práci s XML soubory 10/04/2017

.NET Framework (4) ASP.NET: Windows Forms: soubor technologií pro tvorbu webových aplika-cí a webových služeb Windows Forms: programové rozhraní pro vývoj grafických desk-topových aplikací poskytuje sadu tříd umožňujících přístup ke standardním ovládacím prvkům operačního sys-tému MS Windows (okno, tlačítko, menu, editační prvek atd.) 10/04/2017

.NET Framework (5) CLS – Common Language Specification: definuje základní vlastnosti programovacích ja-zyků podporované běhovým prostředím CLR .NET Framework 3.0: přináší čtyři hlavní nové komponenty: WPF – Windows Presentation Foundation: rozhraní pro vytváření grafických aplikací a jejich uživatel-ských rozhraní založeno na XML a vektorové grafice při své činnosti využívá Direct3D WCF – Windows Communication Foundation: technologie pro vývoj webových služeb a komunikační infrastruktury aplikací umožňuje vytváření aplikací orientovaných na služby (SOA – Service Oriented Application) 10/04/2017

.NET Framework (6) .NET Framework 3.5: WF – Windows Workflow Foundation: technologie pro definování (modelování) heterogenních sekvenčních procesů Windows CardSpace: programová komponenta, která bezpečně ukládá digitální identity a poskytuje jednotné rozhraní pro volbu identity k určité transakci .NET Framework 3.5: přidává dvě komponenty pro datové služby: ADO.NET Entity Framework ADO.NET Data Services poskytuje LINQ: komponenta umožňující jednotný přístup k datům a jejich zpra-cování deklarativním a funkcionálním způsobem 10/04/2017

.NET Framework (7) .NET Framework 4.0: .NET Framework 4.5: přináší zejména Parallel Extensions zlepšující podporu paralelních výpočtů u vícejádrových a distribuovaných systémů: PLINQ: paralelní implementace technologie LINQ Task Parallel Library: množina tříd umožňující efektivní zpracování úloh s využi-tím všech dostupných jader procesoru .NET Framework 4.5: doplňuje podporu pro: aplikace typu Metro Style asynchronní programování 10/04/2017

Životní cyklus aplikace (1) CLI C# zdrojový kód Překladač VB zdrojový kód Překladač CIL CLR 10111011001010 JIT J# zdrojový kód Překladač CIL – Common Intermediate Language: dříve nazývaný jako MSIL – Microsoft Interme-diate Language jazyk nezávislý na platformě, do něhož jsou pře-kládány programy napsané v jazycích kompati-bilních s .NET Frameworkem 10/04/2017

Životní cyklus aplikace (2) CLI – Common Language Infrastructure: otevřená a standardizovaná specifikace popisuje vlastnosti spustitelného kódu a prostře-dí pro jeho běh umožňuje, aby aplikace byly napsány v různých vyšších programovacích jazycích a následně spouštěny v rozličných prostředích součástí CLI je i CTS – Common Type System popisující datové typy a typový systém mezi implementace CLI patří CLR a Mono 10/04/2017

Životní cyklus aplikace (3) JIT – Just-In-Time compilation: realizována JIT překladačem, který je součástí CLR provedena v okamžiku, kdy systém detekuje, že dochází ke spuštění aplikace v CIL během ní dochází k vygenerování strojového kódu, který může být spuštěn na aktuálně použí-vané platformě výsledný kód běží ve virtuálním stroji .NET Frameworku  jedná se o řízený kód (managed code) 10/04/2017

Programovací jazyk C# Vyvinutý v rámci platformy MS .NET Jedná se o objektově orientovaný jazyk Založen na jazycích C++ a Java Syntaxe C# je podobná syntaxi jazyka C (Java) Lze jej využít k tvorbě např.: desktopových aplikací webových aplikací, webových služeb a stránek programů pro mobilní zařízení (PDA, mobilní telefony) databázových programů 10/04/2017

Program v jazyce C# (1) Tvořen třídami a jejich členy (members) Třídy a další datové typy jsou organizovány ve jmenných prostorech (namespace) a mo-hou být vnořovány do jiných tříd Vstupním bodem každého programu v C# je metoda (funkce obsažená v typu třída) Main: může být v programu pouze jedna jedná se o statickou metodu návratovým typem může být void nebo int může přijímat parametry z příkazové řádky OS 10/04/2017

Program v jazyce C# (2) Metoda Main může mít jednu z následujících signatur: static void Main() static void Main(string[] args) static int Main() static int Main(string[] args) Poznámka: jazyk C# podobně jako jazyk C/C++ rozlišuje velká a malá písmena (jazyk case sensitive) 10/04/2017

Jmenné konvence (1) Dovolují rychlejší čtení a porozumění kódu Poskytují dodatečné informace o kódu Velikost písmen – kapitalizace: Pascal Case: konvence, u níž jsou víceslovné identifikátory psány dohromady (bez mezer a podtržítek mezi slovy) každé slovo začíná velkým písmenem používá se např. pro názvy jmenných prostorů, dato-vých typů (tříd, struktur, výčtových typů, …), rozhra-ní, metod, vlastností, událostí, hodnot výčtových typů příklad: ThisIsPascalCase 10/04/2017

Jmenné konvence (2) Volba jmen: Camel Case: podobně jako Pascal Case, ale první písmeno identifi-kátoru je malé používá se např. pro lokální proměnné, parametry metod, soukromé datové položky třídy příklad: thisIsCamelCase Volba jmen: Třídy, struktury Podstatné jméno nebo jmenná fráze Metody Slovesa v rozkazovacím tvaru a slovesné fráze (sloveso + předmět) Vlastnosti, proměnné Podstatné jméno nebo jmenná fráze 10/04/2017

Standardní výstup (1) Pro zobrazení hodnot na standardní výstup je možné použít statické metody definované ve statické třídě Console: Write: po vypsání posledního znaku neprovádí odřádkování WriteLine: po vypsání posledního znaku provádí odřádkování Poznámka: třída Console je definována ve jmenném prostoru System 10/04/2017

Standardní výstup (2) Prvním parametrem uvedených metod může být řetězec obsahující (kromě textu) specifi-kace, které určují místa, na nichž mají být vy-psány hodnoty dalších parametrů Specifikace se zapisují ve složených závor-kách, jež obsahují pořadové číslo vypisova-ného parametru Příklad: Console.Write("a = {0}, b = {1}", a, b); 10/04/2017

Standardní výstup (3) Poznámky: součástí specifikace mohou být i informace o tom, jakým způsobem má být hodnota odpo-vídajícího parametru formátována je-li zapotřebí vypsat hodnotu pouze jednoho parametru, je možné řetězec (jako první para-metr) vynechat 10/04/2017

Standardní vstup Pro načtení hodnoty ze standardního vstupu jsou ve třídě Console definovány statické metody: Read: načítá ze standardního vstupu jeden znak vrácená hodnota je typu int ReadLine: načítá ze standardního vstupu celý řádek vrácená hodnota je typu string Poznámka: pro převody mezi různými datovými typy lze použít metody statické třídy Convert (defi- nována ve jmenném prostoru System) 10/04/2017

Předdefinované datové typy (1) Jazyk C# poskytuje sadu předdefinovaných datových typů, které se nachází ve jmenném prostoru System Jednotlivé datové typy (vyjma typu string a object) jsou synonymy struktur, které obsahují metody  tyto metody lze pomocí tečkové notace volat Všechny tyto struktury poskytují např. meto-du ToString, která umožňuje převést číselnou hodnotu na její textové vyjádření 10/04/2017

Předdefinované datové typy (2) Popis Velikost Typový ekvivalent sbyte celočíselný typ se znaménkem 8 b System.SByte short celočíselný typ 16 b System.Int16 int celočíselný typ 32 b System.Int32 long celočíselný typ 64 b System.Int64 byte celočíselný typ bez znaménka 8 b System.Byte ushort celočíselný typ 16 b System.UInt16 uint celočíselný typ 32 b System.UInt32 ulong celočíselný typ 64 b System.UInt64 float reálný typ (s jednoduchou přesností) 32 b System.Single double reálný typ (s dvojitou přesností) 64 b System.Double 10/04/2017

Předdefinované datové typy (3) Popis Velikost Typový ekvivalent bool logický (booleovský) typ 8 b System.Boolean char znakový typ (Unicode, UTF-16) 16 b System.Char decimal peněžní hodnoty (28 platných číslic) 128 b System.Decimal object kořen objektové hierarchie System.Object string posloupnost znaků (řetězec) 16 b / znak System.String Poznámka: datové typy string a object jsou popsány jako třídy (nikoliv jako struktury) 10/04/2017

Hodnotové a referenční typy (1) Každý typ v jazyce C# je přímo nebo nepří-mo odvozen od třídy object Hodnotové typy (value types): jejich proměnné přímo nesou (obsahují) svá data každá proměnná má svou vlastní kopii dat změna hodnoty jedné proměnné neovlivňuje hodnotu proměnné jiné jsou ukládány na zásobníku patří mezi ně většina předdefinovaných typů (vyjma object a string) a výčtové typy pro vytvoření vlastních hodnotových typů slouží struktury 10/04/2017

Hodnotové a referenční typy (2) Referenční (odkazové) typy (reference types): jejich proměnné ukládají odkaz (referenci) na data (objekty) pokud dojde k přiřazení proměnné, tak dojde ke zkopírování odkazu je možné, aby dvě proměnné obsahovaly odkaz na stejný objekt operace nad jednou proměnnou může ovlivnit objekt, na nějž se odkazuje proměnná jiná v paměti jsou ukládány na spravované haldě (managed heap) 10/04/2017

Nulovatelné typy (1) Nulovatelné (nullable) typy představují rozší-ření, jež umožňuje přiřazovat hodnotu null do proměnných všech hodnotových typů Hodnota null vyjadřuje, že proměnná nemá žádnou hodnotu Vhodné zejména pro pohodlnou práci s SQL a s relačními databázemi (ve sloupci databáze může být hodnota NULL) Zapisovány pomocí otazníku za názvem typu Příklad: int? x; 10/04/2017

Nulovatelné typy (2) Poskytují vlastnosti (určené pouze pro čtení): Value: obsahuje hodnotu dané proměnné je-li hodnota proměnné null, pak způsobí výjimku pro změnu hodnoty se používá přiřazení přímo do proměnné HasValue: booleovská vlastnost: false: vyjadřuje, že proměnná nemá žádnou hodnotu nastaví se automaticky, je-li do proměnné přiřazena hodnota null true: vyjadřuje, že proměnná má určitou hodnotu nastaví se automaticky, je-li do proměnné přiřazena jiná hodnota než null 10/04/2017

Nulovatelné typy (3) Konverze: nenulovatelného typu na nulovatelný je provádě-na implicitně nulovatelného typy na nenulovatelný musí být provedena explicitně Příklad: int? age1 = 30; int? age2 = null; int age3 = 0; age3 = (int)age1; age2 = age3; 10/04/2017

Null coalescing operator (1) Null coalescing (null splývající) operátor je zapisovaný ve tvaru výrazu: A ?? B Výsledek výrazu je: A: jestliže A neobsahuje hodnotu null B: v opačném případě Jestliže A obsahuje hodnotu null, pak B poskytne hodnotu k použití Používaný k definici implicitní hodnoty pro nulovatelné hodnotové nebo referenční typy 10/04/2017

Null coalescing operator (2) Příklad: int? x = null; int? y = 10; int? z = x ?? y; int i = z ?? 4; Console.WriteLine("z = {0}", z); Console.WriteLine("i = {0}", i); Na výstupu bude vypsáno: z = 10 i = 10 10/04/2017

Implicitně typované proměnné Definované pomocí klíčového slova var (bez použití identifikátoru označujícího datový typ) V době definice musí být provedena i jejich inicializace Představují silně typované proměnné Jejich typ je určen z pravé strany inicializace Příklad: var distance = 20; //int 10/04/2017