Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek obsahuje historii každé hlavní verze jazyka C#. Tým C# pokračuje v inovování a přidávání nových funkcí. Podrobný stav jazykových funkcí, včetně funkcí zvažovaných pro nadcházející vydání, najdete v úložišti dotnet/roslyn na GitHubu. Pokud chcete zjistit, kdy byla do jazyka přidána určitá funkce, projděte si soubor historie verzí jazyka C# v úložišti dotnet/csharplang na GitHubu.
Důležité
Jazyk C# spoléhá na typy a metody v tom, co specifikace jazyka C# definuje jako standardní knihovnu pro některé funkce. Platforma .NET poskytuje tyto typy a metody v řadě balíčků. Jedním z příkladů je zpracování výjimek. Každý throw příkaz nebo výraz je kontrolován, aby se zajistilo, že objekt, který je vyvolán, je odvozen z Exception. Podobně, každý catch je kontrolován, aby zajistil, že zachytávaný typ je odvozen od Exception. Každá verze může přidat nové požadavky. Pokud chcete používat nejnovější jazykové funkce ve starších prostředích, možná budete muset nainstalovat konkrétní knihovny. Tyto závislosti jsou popsané na stránce pro každou konkrétní verzi. Další informace o vztazích mezi jazykem a knihovnou k pochopení této závislosti.
C# verze 14
Vydáno v listopadu 2025
C# 14 obsahuje následující nové funkce:
- Rozšiřující členové
- Podmíněné přiřazení s hodnotou Null
-
nameofpodporuje nevázané obecné typy. -
Další implicitní převody pro
Span<T>aReadOnlySpan<T> - Modifikátory jednoduchých parametrů lambda
-
fieldzálohované vlastnosti -
partialudálosti a konstruktory - operátory složeného přiřazení definované uživatelem
C# verze 13
vydáno v listopadu 2024
C# 13 obsahuje následující nové funkce:
-
paramskolekce: modifikátorparamsnení omezen na typy polí. Nyní můžete použítparamss libovolným rozpoznaným typem kolekce, včetněSpan<T>a typů rozhraní. - Nový
locktyp a sémantika: Pokud cíl příkazulockje System.Threading.Lock, kompilátor generuje kód, který použije metodu Lock.EnterScope() k zadání výhradního oboru.ref struct, které podporuje vzorDispose(), umožňuje ukončení výhradního oboru. - Nová escape sekvence –
\e: Můžete použít\ejako escape sekvenci literálu pro znakESCAPE, UnicodeU+001B. - Malé optimalizace řešení přetížení, které zahrnují skupiny metod.
- Implicitní přístup indexeru v inicializátorech objektů: Implicitní operátor indexu "od konce",
^, je nyní povolen v rámci výrazu inicializátoru objektu. - V iterátorech a asynchronních metodách můžete použít místní hodnoty
refa kontextyunsafe. - K implementaci rozhraní můžete použít typy
ref struct. -
ref structtypy můžete povolit jako argumenty pro parametry typu v obecných typech. - Částečné vlastnosti a indexery jsou teď povolené v
partialtypech. - Priorita rozlišení přetížení umožňuje autorům knihoven určit jedno přetížení jako lepší než ostatní.
C# verze 12
Vydáno v listopadu 2023
V jazyce C# 12 byly přidány následující funkce:
-
Primární konstruktory – primární konstruktory můžete vytvořit v libovolném
classtypu nebostructtypu. -
Kolekční výrazy – nová syntaxe pro specifikaci kolekčních výrazů, včetně operátoru rozprostření (
..e), pro rozšíření libovolné kolekce. - Vložená pole – Vložená pole umožňují vytvořit pole s pevnou velikostí v rámci typu.
- Volitelné parametry ve výrazech lambda – u výrazů lambda můžete definovat výchozí hodnoty parametrů.
-
ref readonlyParametry -ref readonlyumožňují větší srozumitelnost pro rozhraní API, která mohou používatrefparametry neboinparametry. -
Alias libovolný typ – direktivu
usingaliasu můžete použít k aliasu libovolného typu, nikoli pouze pojmenovaných typů. - Experimentální atribut – indikuje experimentální funkci.
Interceptors – byly vydány jako funkce typu náhled.
C# 12 celkově nabízí nové funkce, které usnadňují psaní kódu jazyka C#. Syntaxe, kterou jste už věděli, je k dispozici na více místech. Jiná syntaxe umožňuje konzistenci souvisejících konceptů.
C# verze 11
Vydáno v listopadu 2022
V jazyce C# 11 byly přidány následující funkce:
- Nezpracované řetězcové literály.
- Obecná podpora matematiky
- Obecné atributy.
- Řetězcové literály UTF-8
- Nové řádky ve výrazech interpolace řetězce.
- Vzory seznamů
- Místní typy souborů.
- Požadované členy.
- Automatické výchozí struktury
- Porovnání vzoru
Span<char>s konstantoustring. - Rozšířený
nameofobor. - Klíčová slova
nintauintjsou aliasy pro System.IntPtr a System.UIntPtrSystem.UIntPtr, v daném pořadí. -
refpole ascoped ref - Byl vylepšen převod skupiny metod na delegáta.
- Výstražná vlna 7
C# 11 představuje obecnou matematiku a několik funkcí, které tento cíl podporují. Číselné algoritmy můžete psát jednou pro všechny typy čísel. Existuje více funkcí, které usnadňují práci s struct typy, jako jsou povinné členy a automatické výchozí struktury. Práce s řetězci je jednodušší s řetězcovými literály raw, newline v interpolacích řetězců a řetězcovými literály UTF-8. Funkce, jako jsou místní typy souborů, umožňují jednodušší generátory zdrojů. A konečně, seznam vzorů přidává další podporu pro porovnávání vzorů.
C# verze 10
Vydáno v listopadu 2021
Jazyk C# 10 přidá do jazyka C# následující funkce a vylepšení:
- Struktury záznamů
- Vylepšení typů struktur
- Interpolovaní zpracovatelé řetězců
-
global usingsměrnice - Deklarace oboru názvů na úrovni souboru
- Vzory rozšířených vlastností
- Výrazy lambda mohou mít přirozený typ, kde kompilátor může odvodit typ delegáta z výrazu lambda nebo skupiny metod.
- Výrazy lambda mohou deklarovat návratový typ, když ho kompilátor nemůže odvodit.
- Atributy lze použít u výrazů lambda.
- V jazyce C# 10 lze
constřetězce inicializovat pomocí interpolace řetězců, pokud jsou všechny zástupné symboly samy o sobě konstantní řetězce. - V jazyce C# 10 můžete přidat modifikátor
sealed, když přepíšeteToStringv typu záznamu . - Upozornění pro konkrétní přiřazení a analýzu stavu null jsou přesnější.
- Umožňuje přiřazení i deklaraci ve stejné dekonstrukci.
-
Povolit
AsyncMethodBuilderatribut u metod - CallerArgumentExpression – atribut
- C# 10 podporuje nový formát pro pragma direktivu
#line.
C# 10 pokračuje v práci na motivech odebrání obřadu, oddělení dat od algoritmů a lepšího výkonu pro modul runtime .NET.
Mnoho funkcí znamená, že zadáte méně kódu, abyste vyjádřili stejné koncepty. Struktury záznamů syntetizují mnoho stejných metod, které třídy záznamů dělají. Struktury a anonymní typy podporují výrazy. Globální direktivy použití a deklarace oboru názvů s rozsahem souboru znamenají, že závislosti a organizace oboru názvů jsou vyjádřeny jasněji. Vylepšení lambda usnadňují deklaraci výrazů lambda tam, kde se používají. Nové vzory vlastností a vylepšení dekonstrukce vytvářejí stručnější kód.
Nové Interpolované obslužné programy řetězců a AsyncMethodBuilder chování mohou zlepšit výkon. Tyto jazykové funkce byly použity v modulu runtime .NET k dosažení vylepšení výkonu v .NET 6.
C# 10 označuje také větší posun k ročnímu tempu vydávání verzí .NET. Vzhledem k tomu, že ne každou funkci je možné dokončit v ročním časovém rámci, můžete vyzkoušet několik funkcí ve verzi Preview v jazyce C# 10. Můžete použít obecné atributy i statické abstraktní členy v rozhraních, ale tyto funkce ve verzi Preview se můžou před finální verzí změnit.
C# verze 9
Vydáno v listopadu 2020
Jazyk C# 9 byl vydán s .NET 5. Jedná se o výchozí jazykovou verzi pro všechna sestavení, která cílí na verzi .NET 5. Obsahuje následující nové a vylepšené funkce:
- Záznamy
- Nastavovače pouze pro inicializaci
- Příkazy nejvyšší úrovně
- Vylepšení porovnávání vzorů: relační vzory a logické vzory
- Výkon a interoperabilita
- Přizpůsobení a dokončení funkcí
C# 9 pokračuje ve třech motivech z předchozích verzí: odebrání obřadu, oddělení dat od algoritmů a poskytování dalších vzorů na více místech.
Příkazy nejvyšší úrovně znamenají, že váš hlavní program je jednodušší na čtení. Není potřeba tolik ceremonie: obor názvů, Program třída a static void Main() jsou všechno zbytečné.
records Úvod poskytuje stručnou syntaxi pro odkazové typy, které sledují sémantiku hodnot pro rovnost. Pomocí těchto typů můžete definovat datové kontejnery, které obvykle definují minimální chování.
Init-only setters umožňují nedestruktivní mutace (with výrazy) v záznamech. C# 9 také přidává kovariantní návratové typy , aby odvozené záznamy mohly přepsat virtuální metody a vrátit typ odvozený z návratového typu základní metody.
Možnosti porovnávání vzorů se rozšířily několika způsoby. Číselné typy teď podporují vzory rozsahů. Vzory lze kombinovat pomocí andor, a not vzorů. Závorky lze přidat k objasnění složitějších vzorů:
C# 9 obsahuje nová vylepšení porovnávání vzorů:
- Vzory typů odpovídají určitému typu objektu.
- Vzory uzavřené v závorkách vynucují nebo zdůrazňují precedenci kombinací vzorů
-
Vzory konjunktivu
andvyžadují, aby se oba vzory shodovaly. -
Disjunktivní
orvzory vyžadují, aby se shodoval alespoň jeden vzor. -
Negované
notvzory vyžadují, aby se vzor neshodoval. - Relační vzory vyžadují, aby vstup byl menší než, větší než, menší nebo roven nebo větší než nebo rovno dané konstantě.
Tyto vzory obohacují syntaxi vzorů. Jedním z nejběžnějších použití je nová syntaxe kontroly null:
if (e is not null)
{
// ...
}
Libovolný z těchto vzorů se dá použít v libovolném kontextu, kde jsou povolené vzory: is vzorové výrazy, switch výrazy, vnořené vzory a vzor switch popisku příkazu case .
Další sada funkcí podporuje vysokovýkonné výpočetní prostředí v jazyce C#:
- Typy
nintanuintmodelují celočíselné typy nativní velikosti na cílové CPU. - Ukazatele funkcí poskytují funkce podobné delegátům a zároveň se vyhýbají přidělením potřebným k vytvoření objektu delegáta.
- Instrukce
localsinitse dá vynechat, aby se uložily pokyny.
Výkon a interoperabilita
Další sada vylepšení podporuje scénáře, ve kterých generátory kódu přidávají funkce:
- Inicializátory modulů jsou metody, které modul runtime volá při načtení sestavení.
- Částečné metody podporují nové modifikátory přístupu a návratové typy bez void. V těchto případech musí být poskytována implementace.
Kvalita zpracování a dokončovací prvky
C# 9 přidává mnoho dalších malých funkcí, které zlepšují produktivitu vývojářů, jak psaní, tak čtení kódu:
- Výrazy cílového typu
new -
staticanonymní funkce - Podmíněné výrazy cílového typu
- Podpora rozšíření
GetEnumerator()proforeachcykly - Výrazy lambda mohou deklarovat parametry zahození.
- Atributy lze použít pro místní funkce.
Verze C# 9 pokračuje v práci na zachování moderního programovacího jazyka pro obecné účely v jazyce C#. Funkce nadále podporují moderní úlohy a typy aplikací.
C# verze 8.0
Vydáno v září 2019
C# 8.0 je první hlavní verze jazyka C#, která konkrétně cílí na .NET Core. Některé funkce spoléhají na nové funkce CLR (Common Language Runtime), jiné na typy knihoven přidané pouze v .NET Core. Jazyk C# 8.0 přidá do jazyka C# následující funkce a vylepšení:
- Členové jen pro čtení
- Výchozí členy rozhraní
-
Vylepšení porovnávání vzorů:
- Výrazy přepínače
- Šablony vlastností
- Vzory řazené kolekce členů
- Poziční vzory
- Použití deklarací
- Statické místní funkce
- Uvolnitelné struktury ref
- Odkazové typy s možnou hodnotou null
- Asynchronní streamy
- Indexy a rozsahy
- Přiřazení při souhlásání s hodnotou null
- Nespravované vytvořené typy
- Stackalloc ve vnořených výrazech
- Vylepšení interpolovaných doslovných řetězců
Výchozí členové rozhraní vyžadují vylepšení v CLR. Tyto funkce byly přidány do CLR pro .NET Core 3.0. Rozsahy, indexy a asynchronní streamy vyžadují nové typy v knihovnách .NET Core 3.0. Odkazové typy s možnou hodnotou null jsou mnohem užitečnější, když jsou knihovny opatřeny poznámkami, které poskytují sémantické informace o možnosti null u argumentů a návratových hodnot, i když jsou implementovány v kompilátoru. Tyto poznámky se přidávají do knihoven .NET Core.
C# verze 7.3
Vydáno v květnu 2018
Verze C# 7.3 má dva hlavní motivy. Jeden motiv poskytuje funkce, které umožňují, aby byl bezpečný kód tak výkonný jako nebezpečný kód. Druhý motiv poskytuje přírůstková vylepšení stávajících funkcí. V této verzi byly přidány také nové možnosti kompilátoru.
Následující nové funkce podporují motiv lepšího výkonu pro bezpečný kód:
- K pevným polím můžete přistupovat bez připnutí.
- Můžete změnit přiřazení
refmístních proměnných. - Inicializátory můžete použít u
stackallocpolí. - Můžete použít
fixedpříkazy s libovolným typem, který podporuje vzor. - Můžete použít obecnější omezení.
U stávajících funkcí jsme provedli následující vylepšení:
- Můžete testovat
==a!=s typy tuply. - Výrazové proměnné můžete použít na více místech.
- K záložnímu poli automaticky implementovaných vlastností můžete připojit atributy.
- Vyhodnocení metody bylo zlepšeno, když se argumenty liší o
in. - Řešení přetížení má nyní méně nejednoznačných případů.
Nové možnosti kompilátoru jsou:
-
-publicsignumožnění podepisování sestavení pomocí open source softwaru (OSS). -
-pathmapa poskytuje mapování zdrojových adresářů.
C# verze 7.2
Vydáno v listopadu 2017
Jazyk C# 7.2 přidal několik malých jazykových funkcí:
- Inicializátory v
stackallocpolích - Použijte příkazy
fixeds libovolným typem, který podporuje vzor. - Přístup k fixním polím bez připnutí
- Znovu přiřaďte
refmístní proměnné. - Deklarujte
readonly structtypy, které označují, že struktura je neměnná a měla by být předána jakoinparametr jeho členské metody. -
inPřidejte modifikátor parametrů, který určuje, že argument je předán odkazem, ale není upraven zavolánou metodou. - Pomocí modifikátoru
ref readonlyna návratové hodnotě metody indikujte, že metoda vrací svou hodnotu jako odkaz, ale neumožňuje modifikovat tento objekt. - Deklarujte
ref structtypy, které označují, že typ struktury přistupuje přímo ke spravované paměti a musí být vždy přidělen zásobník. - Použijte obecnější omezení.
-
Neosledované pojmenované argumenty:
- Poziční argumenty mohou následovat za pojmenovanými argumenty.
- Úvodní podtržítka v číselných literálech:
- Číselné literály teď můžou mít úvodní podtržítka před vytištěnými číslicemi.
-
private protectedmodifikátor přístupu:-
private protectedModifikátor přístupu umožňuje přístup pro odvozené třídy ve stejném sestavení.
-
- Podmíněné
refvýrazy:- Výsledkem podmíněného výrazu (
?:) teď může být odkaz.
- Výsledkem podmíněného výrazu (
C# verze 7.1
Vydáno v srpnu 2017
Jazyk C# začal vydávat verze bodů v jazyce C# 7.1. Tato verze přidala element konfigurace výběru jazykové verze, tři nové jazykové funkce a nové chování kompilátoru.
Nové jazykové funkce v této verzi jsou:
-
asyncMainmetoda- Vstupní bod aplikace může mít
asyncmodifikátor.
- Vstupní bod aplikace může mít
-
defaultliterální výrazy- Výchozí literální výrazy můžete použít ve výrazech výchozích hodnot, pokud lze odvodit cílový typ.
- Odvozené názvy prvků n-tice
- Názvy elementů řazené kolekce členů lze v mnoha případech odvodit z inicializace řazené kolekce členů.
- Porovnávání vzorů u parametrů obecného typu
- Výrazy shody vzorů můžete použít u proměnných, jejichž typ je parametr obecného typu.
A konečně, kompilátor má dvě možnosti -refout a -refonly, které řídí generování referenčních sestavení.
C# verze 7.0
Vydáno v březnu 2017
V sadě Visual Studio 2017 byla vydána verze C# 7.0. Tato verze má nějaké vývojové a zajímavé věci ve stylu C# 6.0. Tady jsou některé nové funkce:
- Výstupní proměnné
- Tuply a dekonstrukce
- Porovnávání vzorů
- Lokální funkce
- Rozšířené členy s výrazovým tělem
- Lokální reference
- Vrácení odkazu
Mezi další funkce patří:
Všechny tyto funkce nabízejí vývojářům nové možnosti a možnost psát čistější kód než kdy dřív. Zvýrazněním je zhuštění deklarace proměnných pomocí klíčového slova out a umožnění více návratových hodnot prostřednictvím n-tice. .NET Core teď cílí na jakýkoli operační systém a má oči pevně na cloud a na přenositelnost. Tyto nové funkce jistě zabírají myšlenky a čas návrhářů jazyka, kromě toho, že přichází s novými funkcemi.
C# verze 6.0
Vydáno v červenci 2015
Verze 6.0, vydaná s Visual Studio 2015, přinesla mnoho menších funkcí, které učinily programování v jazyce C# produktivnějším. Tady jsou některé z nich:
- Statické importy
- Filtry výjimek
- Inicializátory automatických vlastností
- Členové s výrazovým tělem
- Propagátor null
- Interpolace řetězců
- nameof operátor
Mezi další nové funkce patří:
- Inicializátory indexu
- Čekat v blocích zachycení/finally
- Výchozí hodnoty pro vlastnosti jen pro getter
Pokud se na tyto funkce podíváte společně, uvidíte zajímavý vzor. V této verzi začal jazyk C# eliminovat jazykové šablony, aby byl kód více stručný a čitelný. Takže pro fanoušky čistého, jednoduchého kódu, tato jazyková verze byla obrovská výhra.
Udělali jednu další věc spolu s touto verzí, i když to není tradiční jazyková funkce sama o sobě. Vydali Roslyn kompilátor jako službu. Kompilátor jazyka C# je teď napsaný v jazyce C# a kompilátor můžete použít jako součást svého programovacího úsilí.
C# verze 5.0
Vydáno v srpnu 2012
C# verze 5.0 vydaná v sadě Visual Studio 2012 byla zaměřená verze jazyka. Téměř veškeré úsilí pro tuto verzi bylo vloženo do jiného převratného jazykového konceptu: modelu async a await pro asynchronní programování. Tady je hlavní seznam funkcí:
Atribut Caller Info umožňuje snadno načíst informace o kontextu, ve kterém běží váš program, aniž byste se museli uchylovat k množství standardního reflexního kódu. Má mnoho použití v diagnostice a protokolování úloh.
Ale async a await jsou to skutečné hvězdy této verze. Když tyto funkce vyšly v roce 2012, jazyk C# znovu výrazně ovlivnil vývoj tím, že začlenil asynchronní programování jako plnohodnotnou součást jazyka.
C# verze 4.0
Vydáno v dubnu 2010
Jazyk C# verze 4.0 vydaný v sadě Visual Studio 2010 představil některé zajímavé nové funkce:
- Dynamická vazba
- Pojmenované nebo volitelné argumenty
- Obecný kovariantní a kontravariant
- Vložené typy vzájemné spolupráce
Vložené typy spolupráce zmírnily bolest při nasazení při vytváření sestavení pro interoperabilitu s modelem COM pro vaši aplikaci. Obecné typy s kovariancí a kontravariancí vám umožňují lépe využívat generika, ale jsou trochu akademické a pravděpodobně to nejvíce ocení autoři frameworků a knihoven. Pojmenované a volitelné parametry umožňují eliminovat mnoho přetížení metod a poskytovat pohodlí. Ale žádná z těchto funkcí není skutečně revoluční.
Hlavní funkcí bylo zavedení klíčového dynamic slova. Klíčové dynamic slovo představené ve verzi 4.0 jazyka C# přináší možnost obejít kontroly typů při kompilaci. Pomocí dynamického klíčového slova můžete vytvořit konstrukce podobné dynamicky zadaným jazykům, jako je JavaScript. Můžete vytvořit dynamic x = "a string" a potom k němu přidat šest, přičemž necháte na runtime, aby se vyřešilo, co se má stát dál.
Dynamická vazba poskytuje potenciál chyb, ale také skvělý výkon v rámci jazyka.
C# verze 3.0
Vydáno v listopadu 2007
C# verze 3.0 přišla na konci roku 2007 spolu se sadou Visual Studio 2008, i když celá loď jazykových funkcí by ve skutečnosti přišla s rozhraním .NET Framework verze 3.5. Tato verze označila zásadní změnu růstu jazyka C#. Zavedl jazyk C# jako skutečně impozantní programovací jazyk. Podívejme se na některé hlavní funkce v této verzi:
- Automaticky implementované vlastnosti
- Anonymní typy
- Výrazy dotazů
- Výrazy lambda
- Stromy výrazů
- Rozšiřující metody
- Implicitně zadané místní proměnné
- Částečné metody
- Inicializátory objektů a kolekcí
Při pohledu zpět se mnohé z těchto funkcí jeví jako nevyhnutelné i neoddělitelné. Všechny části do sebe zapadají strategicky. Tato funkce vraha verze jazyka C# byla výraz dotazu, označovaný také jako LINQ (Language-Integrated Query).
Podrobnější zobrazení zkoumá stromy výrazů, výrazy lambda a anonymní typy jako základ, na kterém je linQ vytvořen. V obou případech ale jazyk C# 3.0 představil revoluční koncept. Jazyk C# 3.0 začal klást základy pro přeměnu jazyka C# do hybridního jazyka objektově orientovaného / funkčního jazyka.
Konkrétně byste teď mohli psát deklarativní dotazy ve stylu SQL, které provádějí operace s kolekcemi, mimo jiné. Místo psaní for smyčky pro výpočet průměru seznamu celých čísel to teď můžete udělat jednoduše jako list.Average(). Kombinace výrazů dotazu a rozšiřujících metod tvoří seznam celých čísel mnohem chytřejší.
C# verze 2.0
Vydáno v listopadu 2005
Podívejme se na některé hlavní funkce jazyka C# 2.0 vydané v roce 2005 spolu se sadou Visual Studio 2005:
Další funkce jazyka C# 2.0 byly přidány do stávajících funkcí:
- Getter/setter různá přístupová práva
- Převody skupin metod (delegáti)
- Statické třídy
- Odvozování delegáta
Zatímco jazyk C# začal jako obecný jazyk OO (Object-Oriented), jazyk C# verze 2.0 se změnil ve spěchu. U obecných typů můžou typy a metody pracovat s libovolným typem a přitom zachovat bezpečnost typů. Například, když máte List<T>, můžete mít List<string> nebo List<int> a provádět operace bezpečné pro typ u těchto řetězců nebo celých čísel během iterace. Používání obecných typů je lepší než vytváření typu ListInt, který je odvozen od ArrayList, nebo přetypování z Object pro každou operaci.
Jazyk C# verze 2.0 přinesl iterátory. Stručně řečeno, iterátory vám umožní prozkoumat všechny položky v List (nebo jiných výčtových typech) pomocí smyčky foreach. Iterátory jako základní součást jazyka výrazně zlepšily čitelnost jazyka a schopnost lidí uvažovat o kódu.
C# verze 1.2
Vydáno v dubnu 2003
C# verze 1.2 byla dodávána se sadou Visual Studio .NET 2003. Obsahoval několik malých vylepšení jazyka. Nejdůležitější je, že počínaje touto verzí je kód vygenerovaný ve smyčce volaný při implementaci foreachDispose .IEnumeratorIEnumeratorIDisposable
C# verze 1.0
Vydáno v lednu 2002
Když se vrátíte a podíváte se, C# verze 1.0, vydaná se sadou Visual Studio .NET 2002, vypadala hodně jako Java. V rámci svých uvedených cílů návrhu pro ECMA se snažil být "jednoduchým, moderním, objektově orientovaným jazykem pro obecné účely". V době, kdy vypadala jako Java, znamenala, že dosáhla těchto počátečních cílů návrhu.
Ale když se podíváte zpátky na C# 1.0, zjistíte, že vám z toho trochu jde hlava kolem. Chyběly integrované asynchronní schopnosti a některé ze skvělých funkcí okolo obecných typů, které považujete za samozřejmost. Ve skutečnosti chybí generika zcela. A LINQ? Zatím není k dispozici. Tyto dodatky budou trvat několik let, než se projeví.
Verze 1.0 C# působila ve srovnání s dneškem osekaná o funkce. Našli byste, že píšete nějaký podrobný kód. Ale přesto musíte začít někde. Jazyk C# verze 1.0 byl realizovatelnou alternativou k Javě na platformě Windows.
Mezi hlavní funkce jazyka C# 1.0 patří:
Článekbyl původně publikován na NDepend blogu, díky Erikovi Dietrichovi a Patrickovi Smacchiovi.