C # žymos aprašymas

„C #“ (tariamas „žr. Aštrių“) yra aukšto lygio, statiškai įvestas, į objektą orientuotas programavimo kalba, sukurta „Microsoft“. C # kodas dažniausiai sutelkiamas į „Microsoft“ .NET įrankius ir runtime šeimą, įskaitant .NET Framework ir .NET Core. Naudokite šį žymą kodo klausimais, parašytais oficialioje C # arba C # specifikacijoje. Daugumai klausimų taip pat reikia žymės .NET platformai, pvz., [.Net] (.NET Framework), [.net-core] arba [.net-standard].

yra daugiaprofilinis valdomas objekto programavimo kalba, sukurta Microsoft .NET. C # galima naudoti su bet kuriuo .NET diegimu, pvz., .NET Core, .NET Framework, Mono ir Xamarin.

1.0 / 1.2 ir 2.0 C # versijos buvo pristatytos ir patvirtintos kaip ECMA ir ISO / IEC standartai . Naujausia ECMA versija atitinka „Microsoft C # 5.0“ specifikaciją. Kalbos specifikacijas taip pat galima gauti „Microsoft“, pateikiant „C # 3.0“ ir „C # 5.0“, taip pat „C # 6.0“ projektą.

Kalbos tipo sistema iš pradžių buvo statinė, leido tik aiškias kintamas deklaracijas. var (C # 3.0) ir dynamic (C # 4.0) įvedimas leido jam naudoti tipo išvadą netiesioginiam kintamųjų tipavimui ir naudoti dinaminių tipų sistemą. Delegatai, ypač turintys leksinę paramą anoniminiams metodams (C # 2.0) ir lambda išraiškoms (C # 3.0), leidžia naudoti kalbą funkciniam programavimui.

C # 5.0 pristato async ir await raktinių žodžių, kad supaprastintų asinchroninių funkcijų skambučių naudojimą.

C # 6.0 ?. įvestas nulinio sklidimo operatorius ?. , išimčių filtrai, eilutės interpoliacija ir daug kitų funkcijų, kurios padeda parašyti paprastą kodą.

„C # 7.0“ yra kelios ištraukos, modelių atitikimas, grąžinimo reikšmių eilutės, išraiška ir switch su modeliais, dekonstrukcija, vietinės funkcijos ir kai kurie kiti.

„C # 7.1“ programoje įvedami universalūs modelio atitikmenys, išvestos tuple elementų pavadinimai, default literatūros išraiškos, asinchroninis pagrindinis ir kiti.

C # 7.2 pristato private protected , ne vėlesnius pavadintus argumentus, skaitmeninį separatorių po bazės specifikatoriaus, sąlyginės išraiškos ref, reikšmės tipų referencinį semantiką ir kai kuriuos kitus.

C # 7.3 įdiegė funkcijas, leidžiančias saugiam kodui būti produktyviam, pvz., Nesaugiam kodui, naujoms kompiliatoriaus parinktims, naudojant kintamas deklaracijas lauko, nuosavybės ir konstruktorių iniciatoriuose ir kai kuriuos kitus.

„C # 8.0 “ pristato nullable referencinius tipus, kurie generuoja įspėjimus apie galimus nulio nukrypimus, išskyrus atvejus, kai kodas rodo, kad kintamasis gali būti null (pvz., string? foo yra kintamasis, kuris gali būti nulis), asinchroniniai siūlai, kurie suteikia ypač „IoT“ ir „debesų“ integravimo ir numatytosios sąsajos metodus, kad būtų išvengta sąsajų pakeitimų, taip pat kai kurie kiti patobulinimai.

Paprastai kompiliacija atliekama Microsoft Intermediate >NGen“ („ .NET Framework“ ) ir „ AOT“ („Mono“) reiškia, kad C # kodą galima tiesiogiai sukompiliuoti į savo vaizdą. Be to, kai kurios sistemos (pavyzdžiui, .NET Micro Framework) veikia kaip CIL vertėjai be JIT.

C # apibendrinimai pateikiami iš dalies runtime, o ne C ++ šablonai (šablonai leidžiami kompiliavimo metu) arba „Java“ apibendrinimai (kurie naudoja tipo ištrynimą).

Naudojant „ .NET Core“ su „Windows“, „MacOS“ ir „Linux“, „ .NET Framework for Windows“ (staliniams kompiuteriams / serveriams / mobiliesiems įrenginiams), „Mono“ „Xamarin“ programoms „Android“, „Mac“, „iOS“, „TVOS“ ir „watchOS“, „Silverlight“ / „Moonlight“ (naršyklėms / Mobilieji įrenginiai), Kompaktiška sistema (mobiliesiems įrenginiams) ir „Micro Framework“ (įterptųjų prietaisų), ji yra prieinama daugeliui platformų.


„Hello World“ pavyzdys:

 using System; class Hello { static void Main() { Console.WriteLine("Hello, World!"); } } 

Sveikas pasaulis naudojant klases:

 using System; namespace HelloWorldUsingClasses { class ExampleClass { string exampleString = "Hello World!"; public ExampleClass() { Console.WriteLine(exampleString); } } class Program { static void Main(string[] args) { ExampleClass objHelloWorld = new ExampleClass(); } } } 

Ištekliai


Klausimai ir atsakymai


Ištekliai


knygos


Vadovėliai


C # kalbos ateitis

Padarykite indėlį ir pasiūlykite naujų funkcijų.


Demo projektai


Su # Online IDE


С # Neprisijungęs IDE

Susijusios žymos