Ciszre
- általánosítás
- vegyes stílusok
- névtelen módszerek
- iterátorokat
- null típusok
- Hallgatólagosan tipizálható lokális változók
- Inicializáló objektumok és gyűjtemények
- Automatikus végrehajtása tulajdonságok
- névtelen típusok
- kiterjesztése módszerek
- kérelmek
- lambda kifejezések
- kifejezést fák
- dinamikus kötés
- Nevezett és választható érvek
- Generalizált kovariancia és contravariance
- TPL könyvtár fogalma és feladatai Task osztály
- osztály MemoryCache
- sablon TAP
- Aszinkron módszerek aszinkron és megvárja
- További információt a hívó objektum
- A fordító mint szolgáltatás
- Importálja statikus tag típus egy névtérben
- kizáró szűrők
- várják blokkokban fogni / végül
- inicializáló autoprops
- Az alapértelmezett értékek get -properties
- null feltételesen műtét (. és? [])
- interpoláció vonalak
- üzemeltető nameof
- kezdőérték szótár
- Funkciók préseljük kifejezések
- például a változók ki
- Mintaegyezés
- sablonok
- Sablonok és switch nyilatkozat
- sorok
- Kicsomagolás esek
- helyi funkciók
- fejlesztések literálok
- Helyi változók és visszatérési értékek referenciaként
- A bővítés a lista típusok által visszaadott aszinkron módszer
- További tagjai az osztály formájában kifejezések
- throw kifejezés
1.0 verzió
Az első változat a C # emlékeztető Java 1.4 lehetőségeit, több a bővülő: C # volna ingatlanok (. Keresi a kódot, mint a mező az objektum, de valójában okozhat a rájuk hivatkozó osztály módszerek), indexers (hasonló tulajdonságú, de tart egy paraméter index array) eseményeket. küldöttek. ciklusok foreach. szerkezetét. által elfogadott érték, automatikus átalakítása a beépített típusok objektumokban, ha szükséges (ökölvívás), attribútumok, beépített interakció menedzselt kód (DLL. com), és így tovább.
Továbbá, a C #, úgy döntöttek, hogy át néhány jellemzője C ++, Java hiányzik: előjel nélküli típusok, operátor túlterhelés (bizonyos korlátozásokkal ellentétben C ++), az átviteli paraméterek a link módszer. módszerek egy változó számú paramétert, az üzemeltető Goto (megkötésekkel). Szintén C # hagyott egy korlátozott munkaképesség mutatókkal - a kód helyeken külön jelöléssel nem biztonságos, és szó megadásával egy speciális fordító opciót.
2.0 verzió
3.0 verzió
Új funkciók a 3.0-s verzió
C # 3.0 vezeti be a következő csoport kiegészítéseket a nyelvet:
- kulcsszavak kijelölhet adott. lehetővé teszi a lekérdezéseket az XML dokumentumok, gyűjtemények és így tovább .. Ezek a kérdések hasonlóak az SQL lekérdezések és végrehajtani LINQ komponens. (Az igen kifejezés «nyelv integrált lekérdezés» lefordítva „lekérdezés integrálva a nyelvet.”)
- Inicializálása az objektum együtt tulajdonságai:
Ez felírható
Most már írhatjuk
- expresszió fák:
- A következtetés az, helyi változó típusok: var x = „hello”; helyett karakterlánc x = "hello";
- Névtelen típusok: var x = new
; - Extension-módszerek - egy új eljárás egy meglévő osztályban a ez a kulcsszó az első paraméter a statikus funkciót.
- Automatikus tulajdonságok: a fordító generál egy zárt (magán) mezőbe, és a megfelelő elérési és mutációt előidéző fajok kód
C # 3.0 kompatibilis C # 2.0 A generált MSIL-kódot; javítását nyelven - tisztán szintaktikai és végrehajtott fordításkor. Például sok integrált LINQ lekérdezések végezhetők el anonim küldöttek együtt módszerek állítmány az konténerek és hasonlók List.FindAll List.RemoveAll.
4.0
Új funkciók a 4.0 verzió [16]- Az a képesség, hogy használja a késői kötés, a:
- nyelvekkel dinamikusan típusos (Python. Ruby)
- COM-objektumok
- visszaverődés (reflexió)
- tárgyak változó szerkezetű (DOM). Kulcsszó jelennek dinamikus.
- Nevezett és választható paraméterek
- Új funkciók COM-integrációs
- Kovariáns és kontravariáns generikus interfészek és küldöttek
- Szerződések a kód (Code Contracts)
- TPL TPL (Task Parallel Library), a koncepció a feladatok és osztályok feladat. TaskFactory. párhuzamos
- Osztályra MemoryCache. amelynek célja a tartalom cache-t. Ez hasonló egy osztály gyorsítótár ASP.NET, de lehet használni, ha írásban VEB / grafikus / konzolos alkalmazások.
5.0 verzió
Új funkciók a 5.0-s verzió
- Lyuksablon (feladat-alapú aszinkron minta). TAP használ az egyik módszer képviseli az inicializálás és befejezését egy aszinkron művelet.
- Aszinkron módszerek (aszinkron és megvárja) -, mint egy megvalósítása Lyuksablon.
6.0 verzió
Új funkciók a 6.0 verzió
- null feltételesen műtét (. és? [])
- Funkciók préseljük kifejezések (expresszió-törzsű függvények)
- inicializáló tulajdonságok
- inicializáló indexek
- interpoláció vonalak
- kizáró szűrők
- Import statikus függvény az osztály
- üzemeltető nameof
- várnak belsejében fogás blokkokat, és végül
7.0 verzió
Új funkciók a 7.0-ás verzió [13]
- ki például a változók, amelyek lehetővé teszik haladéktalanul köteles változókat eljárás hívás (és láthatóságának terület kültéri egység az ilyen változók):
- Mintaegyezés. Bemutatjuk a koncepció egy sablon (minta), amely lehetővé teszi a szintaxis változó megfelelő ellenőrzés meghatározott alaki és kivonat információkat szerezzünk.
- Sablonok (van már fel lehet használni nem csak a típus, de a minta - mint a jobb érv)
- Sablonok és a véleménynyilvánítás kapcsolót. Változatok egy kapcsoló bővült, akkor most:
- bármilyen típusú (nem csak a primitív);
- sablonokat használja abban az esetben kifejezést;
- hozzá további feltételeket a kifejezések esetében (a kulcsszó mikor).
- Sorok. Egy új típusú érték tuple szintaxis és a munka az ilyen típusú adatok:
- tuple kicsomagolás. deconstructor új szintaxis struktúrát adunk hozzá. lehetővé teszi, hogy kivonat egy tuple álló tagjai az osztály.
- Helyi funkciók. Most az a funkciója, amelyet csak a test egy módszer lehet nyilvánítani közvetlenül a szervezetben ezt a módszert.
- Fejlesztések literálok. bináris literál és a határoló karakter adtak (_) a numerikus literálok.
- Helyi változók és visszatérési értékek referenciaként. ref kulcsszó bővített funkciókkal. Most már vissza adatokat módszer, vagy mentse őket egy helyi változót referencia.
- A bővítés a lista típusok által visszaadott aszinkron módszer
- További tagjai az osztály formájában kifejezéseket. Szintaxis funkciók préseljük expresszióját (expressziós-törzsű függvények) már alkalmazandó alkotóinak, getter, konstruktorok és a destruktor.
- -vyrazheniya dobja. Most már használhatja dobja a tömörítési funkciót kifejezés (kifejezés testű funkciók):
Példa «Helló, világ!»
Itt a kód a klasszikus programok «Helló világ» C # a konzol alkalmazás: