A technikai korlátok miatt a cím kívánt tipográfiáját nem sikerült megfelelően megjeleníteni.
VS # | ||
Az első változat kelte | 2001 | |
---|---|---|
Paradigma | Strukturált , elengedhetetlen , objektumorientált | |
Szerző | Microsoft | |
Utolsó verzió | 9,0 ( 2020. szeptember 4) | |
Fejlesztői verzió | 8.0 | |
Gépelés | Statikus , erős , nominatív | |
Nyelvjárások | 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 | |
Befolyásolta | C ++ , Java | |
Befolyásolt | Swift , Vala , F # , Kotlin , TypeScript | |
Végrehajtások | Microsoft .NET , Mono , DotGNU | |
Operációs rendszer | Cross-platform | |
Weboldal | docs.microsoft.com/en-us/dotnet/csharp és docs.microsoft.com/de-de/dotnet/csharp | |
Fájlkiterjesztés | .cs | |
C # ( C éles [ s i ː . A vizeletmintákban a ö ɑ ː p ] a brit angol ) egy nyelvet a objektumorientált programozás , forgalomba hozza a Microsoft 2002 óta, és célja, hogy bővítse a platform Microsoft .NET .
A C ++ - ból származik, és nagyon közel van a Java-hoz, amelyből az általános szintaxist, valamint a fogalmakat veszi fel, olyan fogalmakkal egészül ki , mint az operátor túlterhelése , indexelők és delegáltak . Különösen webes alkalmazások fejlesztésére használják az ASP.NET platformon .
A C # egy programozási nyelv objektum-orientált , erősen beírt típus , amely a C és a C ++ - ból származik , olyan nyelv, mint a Java . Arra használják, hogy dolgozzon ki a webes alkalmazások , valamint az asztali alkalmazások , web szolgáltatások , parancsok, kütyü, vagy osztály könyvtárak . A C # -ben az alkalmazás olyan osztályokból álló csomag, ahol az egyik osztálynak van egy Main metódusa , ahogyan azt a Java-ban is megteszik.
A C # célja a .NET platformon , a Microsoft által a COM sikerének érdekében létrehozott technológiai verem fejlesztése .
A C # futtatható fájlok fel vannak osztva összeállításokra, névterekre, osztályokra és osztálytagokra. Az összeállítás a lefordított űrlap, amely lehet program (futtatható) vagy osztálykönyvtár (dll). Egy összeállítás tartalmazza az MSIL-ben futtatható kódot, valamint a szimbólumokat. Az MSIL kódot futás közben gépi nyelvre fordítja le a .NET platform just-in-time funkciója .
A C # a .NET platform fejlesztésére szolgál. Ennek a technológiai veremnek a szíve a .NET-keretrendszer , amely a következőkből áll:
A .NET platform másik terméke a Visual Studio .NET fejlesztői környezet , amely általában a C # programozására használatos eszköz.
A C # a C ++ nyelvből származó nyelv , biztonságos gépelést , valamint az objektumorientált nyelvek beágyazásának , öröklődésének és polimorfizmusának lehetőségeit biztosítja . A C # -ban minden típus objektum . A nyelv rendelkezik szemétszedővel és kivételkezelő rendszerrel .
A biztonságos gépelés különösen azt jelenti, hogy a következő műveleteket elutasítják: egy inicializálatlan változó használata, egy tömb határain túli hozzáférés megkísérlése, olyan típusú konverziók, amelyek eredményei nem kiszámíthatók, a határértékek túllépése a műveletek aritmetikája során.
A Java számos lehetősége megtalálható a C # -ben, és erős hasonlóság mutatkozik a C # -ben írt kód és az egyenértékű Java-kód között.
A C # -ban a változók lehetnek referencia típusúak vagy érték típusúak . Az értéktípusok primitív típusok, felsorolások, strukturált és semmissé váló típusok. A referencia típusok osztályok, interfészek, tömbök és delegáltak .
Primitív típusokA primitív típusok: sbyte, rövid, int, hosszú, byte, ushort, uint, ulong, char, float, double, decimal és bool.
osztályA C # nyelv legalapvetőbb konstrukciói az osztályok . Ezek tartalmazhatnak konstansokat, mezőket, tulajdonságokat, indexelőket, módszereket, eseményeket, operátorokat, konstruktorokat, destruktorokat vagy alosztályokat. Az elemi osztályok karakterlánc és objektum.
strukturáltA struktúrák hasonlóak az osztályokhoz, de értéktípusok, és nem örökölhetők .
delegáltA megbízott olyan módszerre való hivatkozás, amely rendelkezik bizonyos paraméterekkel. A delegáltak metódusokat rendelnek a változókhoz, és paraméterként továbbítják őket.
enumA felsorolt típus olyan értéktípus, amely állandókkal rendelkezik. Minden felsorolt típusnak van egy mögöttes típusa: egy primitív típus, amelyet az állandók értékei alapján határoznak meg.
semmissé tehető típusA nullable primitív típusok, amelyek emellett nullák lehetnek . Minden primitív T típushoz tartozik egy nullázható Tp típus. Például egy int típusú változó? tartalmazhat int vagy null.
A C # 1.0 kulcsszavai:
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 voidA C # 2.0 és 6.0 közé felvett kulcsszavak:
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 yieldA nyelv számos változást mutat a C / C ++ értéktől; különösen a következő pontokat vesszük figyelembe:
Bár a C # hasonló a Java-hoz, van néhány figyelemre méltó különbség, például:
2002 szeptemberében mutatták be a .NET platformot és a C # -t a nyilvánosság számára. A C # ennek a platformnak a tényleges nyelve lesz, a .NET platform egy részének megvalósítására is használták.
változatokÉv | Változat | Könyvtár | Fő változás |
---|---|---|---|
2002 | 1.0 | .NET-keretrendszer 1.0 és 1.1 | |
2005 | 2.0 | .NET-keretrendszer 2.0 | a C # -hoz és a kerethez nagyvonalúságot adott |
2008 | 3.0 | .NET keretrendszer 3.5 | LINQ (nyelvi integrált lekérdezések) |
2010 | 4.0 | .NET Framework 4.0 | dinamikus típusok |
2012 | 5.0 | .NET keretrendszer 4.5 | aszinkron módszerek |
2015 | 6.0 | .NET keretrendszer 4.6 | verzió a linuxhoz |
2016 | 7.0 | .NET-keretrendszer> = 4.5 | Szalagok, helyi funkciók |
2019 | 8.0 | .NET standard> = 2.1 és .NET Core> = 3.0 | Csak olvasási tag, Merge Assignment Operator |
A Microsoft 2007 - ben tette elérhetővé a nyilvánosság számára 2005. október, hosszú béta-tesztelés után a .NET könyvtár 2.0-s verziója, a szinte összes kapcsolódó eszköz új verziójával együtt. A C # nem kivétel a szabály alól, ezért a 2.0 verzióban jelenik meg a következő kiegészítésekkel:
Tájékoztatásul a 2.0-s verzióban bevezetett új funkciók teljes specifikációi a külső linkeken érhetők el .
Anders Hejlsberg , Delphi édesapja a generikumok C #, Java és C ++ nyelven történő megvalósításáról beszélt ebben az interjúban (ben) .
A nullázható típusok funkcionalitását csak néhány héttel a 2.0 verzió nyilvános kiadása előtt korrigálták, mert kiderült, hogy ha a változó értéke valóban nulla, akkor ez a változó nem volt semleges a kifejezés hagyományos értelmében, vagyis: ez nem üres hivatkozás. Így a nulla értékű primitív típus objektummá konvertálása nem nulla értékű hivatkozást eredményezett nulla értékre. A probléma kijavításához ezért szükséges volt a CLR kernel kijavítása, valamint a .NET 2.0 tartomány összes termékének (Visual Studio 2005, SQL Server 2005, C # és VB.NET) számos ellenőrzésének és javításának elvégzése.
A C # 3.0-t a PDC 2005-n mutatták be. A végleges verzió azóta elérhető 2007. november 19letölthető a Microsoft webhelyéről (hu) . A fő újdonságok a következők:
A C # 3.0 és a LINQ áttekintése megtalálható a .NET Framework Development Center oldalon .
A C # 3.0-ban összeállított kód teljes mértékben kompatibilis a 2.0-s verzióval, mivel az elvégzett fejlesztések pusztán szintaktikusak vagy a fordítás idején kompenzált parancsikonokból állnak. A 3.5-ös verziójú könyvtárakban bevezetett új funkciók (LINQ stb.) Azonban nem használhatók a C # korábbi verzióival.
Ehhez a verzióhoz Windows XP vagy újabb ( Vista vagy Windows 7 ) szükséges. Ez nem érhető el Windows 2000 rendszerhez .
A 4-es verzió nyelve számos új funkciót kínál:
A .NET 4.0 keretrendszer megjelent 2010. április 12, a Visual Studio 2010. kíséretében . Többek között a következőket kínálja:
Az aszinkron programok programozására használt 5-ös nyelv egyszerűen kulcsszavak hozzáadásával asyncés await.
Megváltozott a hurok bezárásának viselkedése foreach. A lezárásiforeach problémák elkerülése érdekében már nem szükséges lokális változót hurokba bevezetni .
Vegye figyelembe a hívóval kapcsolatos információkat, amelyek lehetővé teszik a tulajdonságnak nevezett módszer nevének megismerését.
A C # hatodik változata számos változtatást hajt végre, többek között:
Az automatikusan megvalósított tulajdonságok (vagy automatikus tulajdonságok) először a C # 3-ban jelentek meg, hogy egyszerűsítsék azoknak a tulajdonságoknak a deklarálását, amelyek egyszerűen beillesztik a mezőkhöz való hozzáférést. Habár tömörebbé teszik a kódot, hátrányuk van: deklaráció szinten nem lehet inicializálni őket, ezt szükségszerűen a konstruktorban kell megtenni. Ezen túlmenően az automatikus tulajdonságokat nem lehet csak olvashatóvá tenni, mivel nincsenek mutátoruk (szetterük), ezért nem tudtunk értéket rendelni hozzájuk.
A C # 6 azzal a problémával foglalkozik, hogy lehetővé teszi az automatikus tulajdonságok inicializálását a deklaráció szintjén.
A C # -ot az ECMA (ECMA-334) szabványosította 2001. decemberés az ISO / IEC ( ISO / IEC 23270 ) 2003-ban .
A 2.0 verzió változásait az ECMA szabványosította (ECMA-334) 2006. júniusés az ISO / IEC ( ISO / IEC 23270: 2006 ) szerint 2006. szeptember.
A Microsoft megnyitotta a C # által használt könyvtárak forráskódját 2007. októbera Microsoft Referencia Forráslicenc (MS-RSL) alapján.
Az ECMA 334 szabvány és az ISO 23270 a nyelv nevét Unicode karakterként 0043 (C nagybetű), amelyet a 0023 (#) karakter követi. "C élesnek" ejtik, és nem "C hash" -nak, hanem "éles" jelöli a zenei szimbólumot ♯, de a # szükséges a számítógép billentyűzetéről történő könnyű hozzáféréshez, amely helyett a keresztet ("hash") kínálja.
A "C #" nevet zenei jelölések ihlették, ahol az éles jel azt jelzi, hogy az írott hangot félhanggal kell növelni. Ez hasonló a C ++ nyelv nevéhez, ahol a "++" azt jelzi, hogy egy változót 1-gyel kell növelni az értékelés után. A # szimbólum négy "+" szimbólum ligandumának is látszik (egy-két rácsban), ami azt jelenti, hogy a nyelv a C ++ növekménye.