Teknisistä rajoituksista johtuen otsikon toivottua typografiaa ei voitu tehdä oikein.
VS # | ||
![]() | ||
![]() | ||
Ensimmäisen version päivämäärä | 2001 | |
---|---|---|
Paradigma | Jäsennelty , välttämätön , olio | |
Kirjoittaja | Microsoft | |
Viimeinen versio | 9,0 (4. syyskuuta 2020) | |
Kehitysversio | 8.0 | |
Kirjoittaminen | Staattinen , vahva , nimellinen | |
Murteet | 1,0, 1,1, 1,2, 2,0 (ECMA), 3,0, 3,5, 4,0, 5,0, 6,0, 7,0, 7,1, 7,2, 7,3, 8,0, 9,0 | |
Vaikuttanut | C ++ , Java | |
Vaikuttanut | Swift , Vala , F # , Kotlin , TypeScript | |
Toteutukset | Microsoft .NET , mustavalkoinen , DotGNU | |
Käyttöjärjestelmä | Monitasoinen | |
Verkkosivusto | docs.microsoft.com/en-us/dotnet/csharp ja docs.microsoft.com/de-de/dotnet/csharp | |
Tiedostopääte | .cs | |
C # ( cis [ s i ː . Ö ɑ ː s ] in British Englanti ) on kieli on olio-ohjelmoinnin , markkinoima Microsoft vuodesta 2002 ja suunniteltu laajentamaan lavalle Microsoft .NET .
Se on johdettu C ++: sta ja hyvin lähellä Java: ta, josta se vie yleisen syntaksin sekä käsitteet lisäämällä sellaisia käsitteitä kuin operaattorin ylikuormitus , indeksoijat ja edustajat . Sitä käytetään erityisesti verkkosovellusten kehittämiseen ASP.NET- alustalla .
C # on ohjelmointikieli olio , vahvasti kirjoitettu , johdettu C: stä ja C ++: sta , kuten Java . Sitä on tarkoitus kehittää web-sovelluksia , sekä työpöydän sovelluksia , web-palvelut , komentoja, widgetit, tai luokan kirjastoissa . C #: ssä sovellus on joukko luokkia, joissa yhdellä luokista on Main- menetelmä , kuten Java: ssa tehdään.
C #: n on tarkoitus kehittää .NET- alustalla , Microsoftin luomassa tekniikkapinoissa COM- menestymiseen .
C #: n suoritettavat tiedostot on jaettu kokoonpanoihin, nimitiloihin, luokkiin ja luokan jäseniin. Kokoonpano on käännetty lomake, joka voi olla ohjelma (suoritettava) tai luokan kirjasto (dll). Kokoonpano sisältää suoritettavan koodin MSIL: ssä sekä symbolit. MSIL- koodi käännetään konekielelle ajon aikana .NET-alustan juuri-in-time-toiminnolla .
C # on tarkoitettu kehitykseen .NET-alustalla. Tämän teknologisen pinon sydän on .NET-kehys , joka koostuu:
Toinen .NET-alustan tuote on Visual Studio .NET -ympäristö , työkalu, jota käytetään tyypillisesti C #: n ohjelmointiin.
C # on kieli, joka on johdettu C ++: sta , se tarjoaa turvallisen kirjoittamisen , samoin kuin mahdollisuudet kapseloida , periä ja olympiakeskeisten kielten polymorfismi . C #: ssä kaikki tyypit ovat objekteja . Kielellä on roskien kerääjä ja poikkeusten käsittelyjärjestelmä .
Turvallinen kirjoittaminen tarkoittaa erityisesti sitä, että seuraavista toiminnoista kieltäydytään: alustamattoman muuttujan käyttö, pääsy matriisin rajojen ulkopuolelle, tyypin muunnokset, joiden tuloksia ei voida ennakoida, rajojen ylittäminen toimintojen aritmeettisen käytön aikana.
Monet Java- mahdollisuuksista löytyvät C #: stä, ja C #: ssä kirjoitetun koodin ja vastaavan Java-koodin välillä on suuri samankaltaisuus.
C #, muuttujat voivat olla a viite tyyppiä tai a -arvon tyyppiä . Arvotyypit ovat primitiivisiä tyyppejä, luetteloita, strukturoitavia ja mitätöitäviä tyyppejä. Viitetyypit ovat luokat, rajapinnat, taulukot ja edustajat .
Primitiiviset tyypitPrimitiiviset tyypit ovat sbyte, lyhyt, int, pitkä, tavu, ushort, uint, ulong, char, float, double, decimal ja bool.
luokassaC # -kielen perustavanlaatuisimmat rakenteet ovat luokat . Ne voivat sisältää vakioita, kenttiä, ominaisuuksia, hakemistoja, menetelmiä, tapahtumia, operaattoreita, rakentajia, tuhoajia tai alaluokkia. Alaluokat ovat merkkijono ja objekti.
rakenneRakenteet ovat samanlaisia kuin luokat, mutta ne ovat arvotyyppejä, eikä niitä voi periä .
delegoidaEdustaja on viittaus menetelmään, jolla on tietyt parametrit. Edustajia käytetään määrittämään menetelmiä muuttujille ja välittämään ne parametreina.
enumLuetteloitu tyyppi on arvotyyppi, jolla on joukko vakioita. Jokaisella luetellulla tyypillä on taustalla oleva tyyppi: primitiivinen tyyppi, joka määritetään vakioiden arvojen perusteella.
mitätöitävä tyyppiNullables ovat alkeellisia tyyppejä, jotka voivat lisäksi olla nolla . Jokaisella primitiivisellä tyypillä T on liitetty mitätöitävä tyyppi Tp. Esimerkiksi muuttuja tyyppi int? voi sisältää int tai null.
C # 1.0: n avainsanat ovat:
abstract class event if new readonly as const explicit implicit null ref base continue extern in object return bool decimal false int operator sbyte break default finally interface out sealed byte delegate fixed internal override short case do float is params sizeof catch double for lock private stackalloc char else foreach long protected static checked enum goto namespace public string struct throw typeof unchecked using volatile switch true uint unsafe virtual while this try ulong ushort voidC # 2.0: n ja 6.0: n väliin lisätyt avainsanat:
add dynamic join select alias equals let set ascending from nameof value async get on var await global orderby where by group partial when descending into remove yieldKielessä on useita muutoksia C / C ++: sta; seuraavat seikat otetaan erityisesti huomioon:
Vaikka C # on samanlainen kuin Java, on joitain merkittäviä eroja, esimerkiksi:
Se oli .NET-alusta ja C # esiteltiin yleisölle syyskuussa 2002 . C #: stä tulee tämän alustan tosiasiallinen kieli, sitä on käytetty myös osan .NET-alustan toteuttamiseen.
versiotVuosi | Versio | Kirjasto | Tärkein muutos |
---|---|---|---|
2002 | 1.0 | .NET Framework 1.0 ja 1.1 | |
2005 | 2.0 | .NET Framework 2.0 | C #: lle ja kehykselle lisätty yleisyys |
2008 | 3.0 | .NET-kehys 3.5 | LINQ (integroidut kielikyselyt) |
2010 | 4.0 | .NET Framework 4.0 | dynaamiset tyypit |
2012 | 5.0 | .NET-kehys 4.5 | asynkroniset menetelmät |
2015 | 6.0 | .NET-kehys 4.6 | versio Linuxille |
2016 | 7.0 | .NET-kehys> = 4.5 | Tuples, paikalliset toiminnot |
2019 | 8.0 | .NET-standardi> = 2.1 ja .NET Core> = 3.0 | Vain luku, Yhdistä tehtävänoperaattori |
Microsoft saattoi yleisön saataville vuonnaLokakuu 2005, pitkän beetatestauksen jälkeen .NET-kirjaston versio 2.0, johon sisältyy uusi versio melkein kaikista siihen liittyvistä työkaluista. C # ei ole poikkeus säännöstä ja on sen vuoksi julkaistu versiossa 2.0 seuraavin lisäyksin:
Vertailun vuoksi versiossa 2.0 esiteltyjen uusien ominaisuuksien täydelliset tiedot ovat saatavilla ulkoisissa linkeissä .
Delphin isä Anders Hejlsberg puhui tässä haastattelussa (vuonna) geneeristen lääkkeiden toteuttamisesta C #, Java ja C ++ -sivulla .
Nollattavien tyyppien toimivuus korjattiin vain muutama viikko ennen version 2.0 julkista julkaisua, koska paljastettiin, että jos muuttujan arvo oli todellakin nolla, tämä muuttuja ei ollut tyhjä termin perinteisessä merkityksessä, eli se ei ole tyhjä viite. Siten nolla-arvoisen primitiivityypin muuntaminen esineeksi johti nollasta poikkeavaan viittaukseen nolla-arvoon. Tämän ongelman korjaamiseksi oli siis tarpeen korjata CLR-ydin ja suorittaa useita tarkastuksia ja korjauksia kaikille .NET 2.0 -tuotteen tuotteille (Visual Studio 2005, SQL Server 2005, C # ja VB.NET).
C # 3.0 esiteltiin PDC 2005. Lopullinen versio on saatavana vuodesta 19. marraskuuta 2007ladattavaksi Microsoftin sivustolta (en) . Tärkeimmät uudet ominaisuudet ovat seuraavat:
Yleiskatsaus C # 3.0: sta ja LINQ: sta löytyy .NET Framework Development Center -sivulta .
Koodissa C # 3.0 koottu koodi on täysin yhteensopiva version 2.0 kanssa, koska tehdyt parannukset ovat puhtaasti syntaktisia tai koostuvat käännösaikana kompensoiduista pikavalinnoista. Versio 3.5 -kirjastojen uusia ominaisuuksia (LINQ jne.) Ei kuitenkaan voida käyttää C #: n aiempien versioiden kanssa.
Tämä versio vaatii Windows XP: n tai uudemman ( Vista tai Windows 7 ). Se ei ole käytettävissä Windows 2000: ssa .
Versio 4 kieli tarjoaa useita uusia ominaisuuksia:
.NET 4.0 kehys julkaistiin12. huhtikuuta 2010, mukana Visual Studio 2010. Se tarjoaa muun muassa:
Versio 5 Kieli ohjelmoida asynkronista ohjelmia yksinkertaisesti lisäämällä avainsanoja asyncja await.
Silmukan sulkemisten käyttäytymistä foreachon muutettu. Sulkemisongelmienforeach välttämiseksi ei ole enää tarpeen lisätä paikallista muuttujaa silmukkaan .
Huomaa myös tiedot, jotka koskevat soittajaa, jonka avulla voidaan tietää ominaisuuden kutsun menetelmän nimi.
C #: n kuudes versio tekee useita muutoksia, mukaan lukien:
Automaattisesti toteutetut ominaisuudet (tai automaattiset ominaisuudet) ilmestyivät ensin C # 3: ssa yksinkertaistamaan niiden ominaisuuksien ilmoittamista, jotka yksinkertaisesti kapseloivat pääsyn kenttiin. Vaikka ne tekevät koodista suppeamman, heillä on haittapuoli: niitä ei ole mahdollista alustaa ilmoitustasolla, se on välttämättä tehtävä konstruktorissa. Lisäksi automaattisista ominaisuuksista ei ole mahdollista tehdä vain luku -muotoisia, koska niillä ei ole mutaattoria (setteriä), joten emme voineet antaa heille arvoa.
C # 6 korjaa tämän ongelman sallimalla automaattisten ominaisuuksien alustamisen ilmoitustasolla.
ECMA on standardoinut C #: n (ECMA-334) vuonnajoulukuu 2001ja ISO / IEC ( ISO / IEC 23270 ) vuonna 2003 .
ECMA (ECMA-334) on standardoinut version 2.0 muutokset vuonnakesäkuu 2006ja ISO / IEC ( ISO / IEC 23270: 2006 )Syyskuu 2006.
Microsoft on avannut joidenkin C #: n käyttämien kirjastojen lähdekoodin lokakuu 2007alle Microsoft Reference Source License (MS-RSL).
ECMA 334 -standardi ja ISO 23270 määrittelevät kielen nimeksi Unicode- merkin 0043 (isot kirjaimet C), joita seuraa merkki 0023 (#). Sitä lausutaan "C-teräväksi" eikä "C-hashiksi", "terävä" tarkoittaa tosiasiallisesti musiikkisymbolia ♯, mutta # on välttämätön, jotta sitä voidaan käyttää helposti tietokoneen näppäimistöltä, joka tarjoaa sen sijaan ristin ("hash").
Nimi "C #" on saanut inspiraationsa nuotinnista, jossa terävä merkki osoittaa, että kirjoitettua nuottia tulisi lisätä puolisävelellä. Tämä on samanlainen kuin C ++ - kielen nimi, jossa "++" tarkoittaa, että muuttujaa tulisi kasvattaa yhdellä arvioinnin jälkeen. Symboli # näyttää myös neljän "+" -symbolin ligatuurilta (kaksinkertaisesti ruudukossa), mikä tarkoittaa, että kieli on C ++: n lisäys.