Movatterモバイル変換


[0]ホーム

URL:


Naar inhoud springen
Wikipediade vrije encyclopedie
Zoeken

C Sharp

Uit Wikipedia, de vrije encyclopedie
De titel van deze pagina kan door technische beperkingen niet correct worden weergegeven alsC#. Dit artikel artikel gaat over de programmeertaal, voor de muzieknoot die ook wordt weergegeven alsC# zieCis.
C#
C Sharp
Paradigmagestructureerd programmeren, imperatief programmeren, objectgeoriënteerd programmeren, Event, functioneel programmeren, Genericiteit, Reflectie
Verschenen2001
OntwikkelaarMicrosoft
Huidige versie14.0[1] Bewerken op Wikidata
Typesysteemnominatief typesysteem, type-inferentie, dynamisch typesysteem
Implementaties.NET Framework,Mono
Beïnvloed doorC++, C, Java, Delphi, Modula-3, Cω, Eiffel, F#, Haskell, Icon, J#, Object Pascal, Rust, ML, Visual Basic
Invloed opD,Java,Vala,Windows PowerShell
Bestands­extensiescs, csx
Website(en)C# op de website van Microsoft
C Sharp
Portaal Portaalicoon Informatica
Voorbeeld van 'n HalloWêreld (Zuid-Afrikaans)

C# (Engels uitgesproken als "C sharp") is eenprogrammeertaal ontwikkeld doorMicrosoft als deel van het.NET-initiatief, en later geaccepteerd als standaard doorECMA (ECMA-334) enISO (ISO/IEC 23270). C# isobjectgeoriënteerd en lijkt quasyntaxis ensemantiek sterk opJava, maar bevat vooral in latere versies allerlei voorzieningen waardoorook in andere programmeerstijlen gewerkt kan worden, terwijl vooral in debibliotheken en programmeeromgeving een sterke invloed vanObject Pascal enDelphi te zien is.Anders Hejlsberg, de ontwerper van Delphi, heeft een leidende rol gehad in het ontwerpen van C# en .NET.

De taal is geïnspireerd doorC. De naam is een verwijzing naar de muziek: een toon die een halve toon hoger is dan eenC heet C# (Engelse uitspraak:C sharp). In het Nederlands zou datCis zijn.

C# is ontworpen door Anders Hejlsberg en het ontwikkelingsteam wordt momenteel[(sinds) wanneer?] geleid door Mads Torgersen.

Ontwerpdoelen

[bewerken |brontekst bewerken]

De Ecma-norm somt deze ontwerpdoelen op voor C#:[2]

  • De taal is bedoeld als een eenvoudige, moderne,objectgeoriënteerde programmeertaal voor algemene doeleinden.
  • De taal en implementaties daarvan zouden ondersteuning moeten bieden voor software-engineeringprincipes zoals sterke typecontrole, controle van arraygrenzen, detectie van pogingen om niet-geïnitialiseerde variabelen te gebruiken en automatischegarbage collection. Robuustheid vansoftware, duurzaamheid en productiviteit van programmeurs zijn belangrijk.
  • De taal is bedoeld voor gebruik bij het ontwikkelen van softwarecomponenten die geschikt zijn voor implementatie in gedistribueerde omgevingen.
  • Draagbaarheid is erg belangrijk voorbroncode en programmeurs, vooral degenen die al bekend zijn met C en C++.
  • Ondersteuning bijinternationalisering is erg belangrijk.
  • C# is bedoeld om geschikt te zijn voor het schrijven van applicaties voor zowel gehoste alsgeïntegreerde systemen, variërend van zeer grote die geavanceerdebesturingssystemen gebruiken, tot zeer kleine met speciale functies.
  • Hoewel C#-toepassingen bedoeld zijn om zuinig te zijn met betrekking tot geheugen- en verwerkingsvermogenvereisten, was de taal niet bedoeld om rechtstreeks te concurreren op prestaties en grootte met C ofassembleertaal.

Geschiedenis

[bewerken |brontekst bewerken]

Tijdens de ontwikkeling van het .NET-framework werden de klassenbibliotheken oorspronkelijk geschreven met behulp van een beheerdecode-compilersysteem genaamd"Simple Managed C" (SMC).[3][4] In januari 1999 vormdeAnders Hejlsberg een team om een nieuwe taal te bouwen genaamd Cool, wat stond voor "C-like Object Oriented Language".[5] Microsoft had overwogen de naam "Cool" te behouden als de definitieve naam van de taal, maar koos ervoor dit niet te doen vanwege handelsmerkredenen. Tegen de tijd dat het .NET-project publiekelijk werd aangekondigd op deProfessionele Developers Conference van juli 2000, was de taal omgedoopt tot C#, waarbij de klassenbibliotheken en deASP.NET-runtime waren geporteerd naar C#.

Hejlsberg is de belangrijkste ontwerper en hoofdarchitect van C# bij Microsoft, en was eerder betrokken bij het ontwerp vanTurbo Pascal,Embarcadero Delphi (voorheen CodeGear Delphi, Inprise Delphi en Borland Delphi) enVisual J++. In interviews en technische artikelen heeft hij verklaard dat gebreken[6] in de meeste belangrijke programmeertalen (bijv.C++,Java,Delphi enSmalltalk) de basis waren voor deCommon Language Runtime (CLR), die op zijn beurt het ontwerp van de C#-taal zelf vormde.

James Gosling, die de programmeertaal Java in 1994 creëerde, enBill Joy, medeoprichter vanSun Microsystems, de grondlegger van Java, noemde C# een "imitatie" van Java; Gosling zei verder dat "[C#] een soort Java is waarvan de betrouwbaarheid, productiviteit en beveiliging zijn verwijderd."[7][8] Klaus Kreft en Angelika Langer (auteurs van een C++ streams-boek) verklaarden in een blogpost dat "Java en C# bijna identieke programmeertalen zijn. Saaie herhaling zonderinnovatie".[9] "Bijna niemand zal beweren dat Java of C# revolutionaire programmeertalen zijn die de manier waarop we programma's schrijven hebben veranderd" en "C# leende veel van Java - en vice versa. Nu C#boxing en unboxing ondersteunt, hebben we zeer veel vergelijkbare functies als in Java."[9] In juli 2000 zei Hejlsberg dat C# "geen Java-kloon is en veel dichter bij C++ ligt in zijn ontwerp. C# leent de meeste van zijn operators, keywords en statements direct van C++, we hebben gekeken naar Java, naar Modula 2, C en we keken naar Smalltalk. We hebben ook een aantal taaleigenschappen die Java niet overgenomen heeft, waarom zijn er bijvoorbeeld geen enums in Java? We hebben ook operator overloading en typeconversies, ook ligt onze complete structuur voor namespaces veel dichter tegen C++ aan".[10]

Sinds de release van C# 2.0 in november 2005 zijn de C#- en Java-talen geëvolueerd op steeds meer uiteenlopende trajecten, en zijn ze twee behoorlijk verschillende talen geworden. Een van de eerste grote verschuivingen kwam met de toevoeging vangenericiteit aan beide talen, met enorm verschillende implementaties. C# maakt gebruik vanreïficatie om "eersteklas" generieke objecten te leveren die kunnen worden gebruikt zoals elke andere klasse, waarbij codegeneratie wordt uitgevoerd tijdens het laden van de klasse.[11] Bovendien heeft C# verschillende belangrijke functies toegevoegd om het programmeren infunctionele stijl mogelijk te maken, met als hoogtepunt deLINQ-extensies die zijn uitgebracht met C # 3.0 en het ondersteunende raamwerk vanlambda-expressies, uitbreidingsmethoden, enanonieme typen.[12] Deze functies stellen C -programmeurs in staat functionele programmeertechnieken te gebruiken, zoalssluitingen, wanneer dit voordelig is voor hun toepassing. De LINQ-extensies en de functionele import helpen ontwikkelaars de hoeveelheid standaardcode te verminderen die is opgenomen in veelvoorkomende taken zoals het opvragen van eendatabase, het ontleden van eenXML-bestand of het doorzoeken van een datastructuur, waarbij de nadruk wordt verschoven naar de eigenlijke programmalogica om de leesbaarheid te verbeteren en onderhoudbaarheid.

C# had vroeger een mascotte genaamd Andy (genoemd naar Anders Hejlsberg). Die is op 29 januari 2004 gestopt.

C# was oorspronkelijk ter beoordeling voorgelegd aan de ISO-subcommissie JTC 1/SC 22, onder ISO / IEC 23270: 2003, werd ingetrokken en werd vervolgens goedgekeurd onder ISO / IEC 23270: 2006.

Microsoft gebruikte de naam C# voor het eerst in 1988 voor een variant van de C-taal die is ontworpen voor incrementele compilatie.[13] Dat project is niet voltooid, maar de naam leefde voort.

De naam is geïnspireerd door de muziek. De tooncis heet in het Engels "C♯", uitgesproken als "c sharp".[14] Dit is vergelijkbaar met de naam van de programmeertaal C++, waar "++" aangeeft dat een variabele na evaluatie met 1 moet worden verhoogd. Hetkruissymbool lijkt ook op een ligatuur van vier "+" symbolen (in een raster van twee bij twee), wat verder impliceert dat de taal een toename is van C++.

Vanwege technische beperkingen van weergave (standaard fonts, browsers etc.) en het feit dat het kruis niet aanwezig op de meeste toetsenborden (U+266F ♯ MUSIC SHARP SIGN (HTML♯ of♯)), werd hetnummerteken of hekje (U+0023 # NUMBER SIGN (HTML# of#)) gekozen om het kruis in de geschreven naam van de programmeertaal te benaderen. Deze conventie wordt weerspiegeld in de ECMA-334-C#-taalspecificatie.

Het achtervoegsel "sharp" is gebruikt door een aantal andere .NET-talen die varianten zijn van bestaande talen, waaronderJ# (een .NET-taal die ook is ontworpen door Microsoft en is afgeleid van Java 1.1),A♯ (van Ada) en de functionele programmeertaal taalF#. De oorspronkelijke implementatie van Eiffel voor .NET heetteEiffel♯, een naam die weer opgedoekt is omdat de volledige taal vanEiffel nu wordt ondersteund. Het achtervoegsel is ook gebruikt voor bibliotheken, zoalsGtk# (een.NET- wrapper voorGTK+ en andereGNOME-bibliotheken) en Cocoa# (een wrapper voorCocoa).

VersieTaalspecificatieDatum.Net VersieVisual Studio
EcmaISO/IECMicrosoft
C# 1.0december 2002[15]april 2003januari 2002januari 2002.Net Framework 1.0Visual Studio .Net 2002
  • C# 1.1
  • C# 1.2
oktober 2003april 2003.Net Framework 1.1Visual Studio .Net 2003
C# 2.0Juni 2006[16]september 2005november 2005
  • .Net Framework 2.0
  • .Net Framework 3.0
  • Visual Studio 2005
  • Visual Studio 2008
C# 3.0augustus 2007november 2007
  • .Net Framework 2.0 (behalve LINQ)
  • .Net Framework 3.0 (behalve LINQ)
  • .Net Framework 3.5
Visual Studio 2008
C# 4.0april 2010april 2010.Net Framework 4Visual Studio 2010
C# 5.0juni 2013augustus 2012.Net Framework 4.5
  • Visual Studio 2012
  • Visual Studio 2013
C# 6.0[17]draftjuli 2015
  • .Net Framework 4.6
  • .Net Core 1.0
  • .Net Core 1.1
Visual Studio 2015
C# 7.0[18]specificatievoorstelmaart 2017.Net Framework 4.7Visual Studio 2017 versie 15.0
C# 7.1[18]specificatievoorstelaugustus 2017.Net Core 2.0Visual Studio 2017 versie 15.3
C# 7.2[18]specificatievoorstelnovember 2017Visual Studio 2017 versie 15.5
C# 7.3[18]specificatievoorstelmei 2018
  • .Net Core 2.1
  • .Net Core 2.2
  • .Net Framework 4.8
Visual Studio 2017 verse 15.7
C# 8.0[19]specificatievoorstelseptember 2019.Net Core 3.0Visual Studio 2019 versie 16.3
C# 9.0[20]specificatievoorstelnovember 2020.Net 5.0Visual Studio 2019 versie 16.8[21]
C# 10.0[22]specificatievoorstelnovember 2021.Net 6.0Visual Studio 2022 versie 17.0[23]
C# 11.0[24]specificatievoorstelnovember 2022.Net 7.0Visual Studio 2022 versie 17.4[25]
C# 12.0[26]specificatievoorsteldecember 2023.Net 8.0Visual Studio 2022 versie 17.6[27]

Nieuwe taalkenmerken

[bewerken |brontekst bewerken]

In de volgende versietabel zijn de Engelse termen erbij geplaatst omdat deze meer gangbaar zijn binnen het domein.

  • Impliciet getypeerde lokale variabelen
  • Object- en collectie-initializers
  • Auto-implemented eigenschappen
  • Anonieme types
  • Extensiemethoden
  • Query-expressies
  • Anonieme functies / lambda-expressies
  • Expressiebomen
  • Partiële methoden
  • Dynamische bindingen
  • Benoemde en optionele argumenten
  • Generieke co- en contravariantie
  • Embedded interop-typen ("NoPIA")
  • Async/await / asynchrone methoden
  • Aanroeper-informatie-attributen
  • Compiler-als-een-service
  • Import van statische type leden in namespace
  • Exceptiefilters
  • Await in catch/finally-blokken
  • Auto-property-initializers
  • Default values for getter-only-properties
  • Expressie-bodied leden (roslyn)
  • Null propagator / Veilige navigatie-operator / null-condities-operator
  • String-interpolatie
  • nameof-operator
  • Dictionary initializer
  • Inline-out-variabeledeclaraties
  • Patroonmatching
  • Tuple-types en tuple-literals
  • Deconstructie
  • Lokale functies
  • Digitale scheiders
  • Binaire literals
  • Ref-returns en locals
  • Generieke async-return-typen
  • Expressie-bodied constructors en finalizers
  • Expressie-bodied getters en setters
  • Throw kan ook worden gebruikt als expressie
  • Async main
  • Standaard literal-expressies
  • Afgeleide tuple-elementnamen
  • Referentiesemantiek met value-typen
  • Niet-trailing named arguments
  • Leidende underscores in numerieke literals
  • private protected-toegang-modifier
  • Toegang verkrijgen tot vaste velden zonder pinning
  • Opnieuw toekennen van ref local-variabelen
  • Gebruik maken van initializers op stackalloc-arrays
  • Gebruik maken van fixed statements met elk type dat een patroon ondersteund
  • Gebruik maken van additionele algemene constraints
  • readonly-struct-leden
  • Standaard interfaceleden
  • switch-expressies
  • Property, Tuple, en positionele patronen
  • using-declaraties
  • Statische local-functies
  • Disposable ref struct
  • Nullable referentietypen
  • Indices en bereiken
  • Null-coalescing toekenningen
  • Async Streams
  • Doel getypeerde "new"
  • Overslaan van lokale initialisatie
  • Native sized ints
  • Attributen op lokale functies
  • Functiepointers
  • Verbeteringen voor patroonmatching
  • Statische lambda's
  • Records
  • Target-getypeerde conditionelen
  • Covariante returns
  • Extensie getenumerator
  • Module-initializers
  • Uitbreiding partial
  • Top-level-statements

Voorbeeld

[bewerken |brontekst bewerken]

Hieronder staat een voorbeeld van een kleineHello world-applicatie, geschreven in C#:

usingSystem;publicclassHello{privatestaticvoidMain(){Console.WriteLine("Hello World");}}

Een bronbestand van C# wordt opgeslagen met cs-bestandsextensie, bijvoorbeeld 'Hello.cs'.

Vergelijking metJava enC++

[bewerken |brontekst bewerken]
  • Overerving: zoals inJava is er een onderscheid tusseninterfaces, die alleen methodedeclaraties bevatten, enklassen, die methoden kunnen implementeren, en kan een klasse maar van één andere klasse overerven, maar meerdere interfaces implementeren. In C++ wordt dit onderscheid niet gemaakt en ismultiple inheritance van klassen mogelijk.
  • bool: er is geen impliciete conversie tussen bool en int zoals bij C++. Conversies kunnen – net als bij C++ en Java – worden uitgevoerd met behulp vantypecasting. Een Boolean is eenvalue type. Daarnaast kunnen bij C# "primitieve" types als int en bool worden aangesproken als een object (boxing), waardoor een conversie als 5.ToString() mogelijk is; Java heeft dit tegenwoordig ook.
  • struct: C# (en het .NET-framework) maakt een onderscheid tussenreference types envalue types. Een value type wordt in C# gedeclareerd alsstruct, een reference type alsclass. Verder hebben ze dezelfde gebruiksmogelijkheden; eenstruct kan bijvoorbeeld eigenschappen en methoden hebben. Het verschil is dat de instantievariabelen van een value type niet gewijzigd kunnen worden (zulke wijzigingen hebben geen effect). Met structs kan worden voorkomen dat zeer veel kleine objecten de overhead van garbage collection met zich meedragen. In C++ zijn de velden van eenstruct wel degelijk te wijzigen. Java kent geen structs.
  • delegate: Dit zijn type-safe functiepointers. Ze zijn vergelijkbaar met functiepointers in C++ en functionele interfaces in Java.
  • base en override: base is zoals bij Javasuper en override is zoals bij Java en C++virtual.
  • Preprocessor directives: Java kent deze helemaal niet, C# alleen#define, waarmee een constante waarde kan worden gedefinieerd, en#if, dat op die waarde test, zodatconditionele compilatie mogelijk is. Niet ondersteund worden expressies in#define,#include, en andere features van de C/C++-preprocessor. De rol van#include in C++ wordt vervuld doorusing in C# (enimport in Java), die verwijzen naar namespaces in plaats van naar broncode.
  • operators: hier bestaan extra operators ten opzichte van C++, zoals deis,as,?? entypeof, een subset hiervan bestaat ook in Java. C# ondersteunt net als C++operator-overloading; Java niet.
  • Main: wordt gebruikt om het entry point voor een programma aan te geven, zoals in Java.
  • argument passing: is in principe zoals in Java: normaal gesproken is hetcall by value, maarref enout kunnen worden gebruikt om parametersby reference door te geven, wat betekent dat een toewijzing aan de argumentvariabele in de aangeroepen code ook de meegegeven variabele wijzigt in de aanroepende code;unsafe wordt gebruikt om inunmanaged code expliciete pointers (dat wil zeggen geheugenadressen) door te geven.
  • strings: in tegenstelling tot C waar er geen speciale klasse is voor strings, maar een string gewoon een pointer naar een stuk geheugen is waar de string staat, gebruiken C# en Java beide een overkoepelendeString-klasse. Deze zijn meestal 'copy-on-write' en zijn makkelijker aan te passen dan de C-strings. C++ ondersteunt beide methoden.
  • foreach, in: laat toe om door Xrayarrays encollecties teitereren (waardoor de bij eenfor-lus benodigde expliciete indexvariabele overbodig wordt) maar ook door willekeurigeenumerables, die niet altijd, zoals arrays en collecties, een vooraf vastgelegde reeks elementen hoeven te bevatten; ze komen min of meer overeen met delazy lists uit hetfunctioneel programmeren. Java gebruikt zulke iteratie ook, en heeft sinds versie 1.5 ook deforeach-constructie.
  • using: wordt gebruikt om naar anderenamespaces te verwijzen zonder dat men telkens de volledige naam moet opgeven. Ook in Java is deze functionaliteit in de vorm van 'packages' aanwezig en kunnen packages geïmporteerd worden met het import-statement. In C bestaat dit niet in de taal, maar wordt het gesimuleerd met depreprocessor, in C++ bestaat dit echter wel in de vorm van 'using namespace'.
  • Destructor: net zoals bij Java is erautomatic garbage collection, die ervoor zorgt dat de programmeur geen rekening hoeft te houden met het opruimen van het geheugen. In C++ en C moet de programmeur dit wel zelf doen, al bestaan er bibliotheken die er bij kunnen helpen. Het is wel mogelijk in C# om zogenaamde 'unsafe' (unmanaged) code te schrijven met pointers, net als in C++ en C.
  • Machinecode versusByte code: C# en Java worden beide naar byte-code gecompileerd voor eenvirtuele machine (VM), die ook wel deruntime wordt genoemd, en die eenmalig moet worden opgestart; deze machine zal metJIT (Just-in-time-compilatie) de bytecode eenmalig naar machinecode compileren en laten uitvoeren, en is ook verantwoordelijk voorgarbage collection. Programmatuur in een taal als C++ daarentegen wordt direct naar machinetaal gecompileerd, waarna de gecompileerde programmatuur wordt geïnstalleerd op de machines waar de programmatuur op moet draaien; die programmatuur wordt dan direct door deprocessor uitgevoerd. Het gebruik van de virtuele machine heeft als nadeel de overhead van het opstarten en het (eenmalig) compileren; anderzijds maakt het bepaalde optimalisaties in het compileren mogelijk die bij compilatie vooraf onmogelijk zijn.

Common Intermediate Language

[bewerken |brontekst bewerken]

DeCommon Intermediate Language (CIL) is de specificatie van de bytecode waar alle .NET-talen naartoe compileren. De CIL-code wordt door deCommon Language Runtime (CLR) at-runtime omgezet naarmachinecode en uitgevoerd. Omdat de CIL-code at-runtime wordt gecompileerd vlak voor deze wordt aangeroepen, spreekt men wel vanJIT (Just In Time)-compilatie. CIL is te vergelijken met de bytecode in Java's .class-bestanden. Ook Java's VM werkt op eenzelfde manier als de CLR van .NET.

CIL heette voorheen MSIL, wat de afkorting was voor Microsoft Intermediate Language, maar is van naam veranderd om in aanmerking te komen alsISO-standaard.

Gebruik als scripttaal

[bewerken |brontekst bewerken]

Door zijn flexibiliteit kan C# ook alsscripttaal worden gebruikt. Zo is dit standaard geïmplementeerd inUnity3D[31] en is het ook mogelijk om C# als scripttaal te gebruiken voor deUnreal engine.[32] Ook kan C# als scripttaal worden gebruikt met behulp vancs-script[33] en is het mogelijk C# als scripttaal te gebruiken in applicaties die met C++ zijn geschreven.[34]

Door gebruik te maken vanASP.NET kan C# gebruikt worden als alternatief voorPHP.

Zie ook

[bewerken |brontekst bewerken]

Externe links

[bewerken |brontekst bewerken]
Bronnen, noten en/of referenties
  1. What's new in .NET 10.Geraadpleegd op13 november 2025.
  2. Ecma International,C# Language Specification(PDF)(juni 2006).Gearchiveerd op28 juli 2017.Geraadpleegd op26 januari 2012.
  3. Zander, Jason,Couple of Historical Facts(22 november 2007).Gearchiveerd op29 juli 2020.Geraadpleegd op23 november 2009.
  4. Guthrie, Scott,What Language was ASP.Net originally written in?.Gearchiveerd op7 juli 2011.Geraadpleegd op21 februari 2008.
  5. Hamilton, Naomi,The A-Z of Programming Languages.Computerworld.Gearchiveerd op18 februari 2009.Geraadpleegd op1 oktober 2008.
  6. nilsaegele.com,Details.Gearchiveerd op31 december 2019.Geraadpleegd op7 april 2019.
  7. (en)Wong, Wylie,Why Microsoft's C# isn't.CNET: CBS Interactive(2002).Gearchiveerd op29 mei 2014.Geraadpleegd op28 mei 2014.
  8. (en)Joy, Bill,Microsoft's blind spot.cnet.com(7 februari 2002).Gearchiveerd op1 november 2021.Geraadpleegd op12 januari 2010.
  9. 12(en)Kreft, Klaus;Langer, Angelika,After Java and C# - what is next?(2003).Gearchiveerd op3 december 2013.Geraadpleegd op18 juni 2013.
  10. (en)Osborn, John,Deep Inside C#: An Interview with Microsoft Chief Architect Anders Hejlsberg.O'Reilly Media(14 november 2009).Gearchiveerd op9 januari 2010.Geraadpleegd op14 november 2009.
  11. Microsoft,Generics (C# Programming Guide).Gearchiveerd op26 augustus 2011.Geraadpleegd op21 maart 2011.
  12. Heijsberg, Anders;Box, Don,LINQ: .NET Language-Integrated Query(februari 2007).Gearchiveerd op24 augustus 2011.Geraadpleegd op21 maart 2011.
  13. Mariani, Rico,My History of Visual Studio (Part 1).Rico Mariani's Performance Tidbits.Gearchiveerd op24 juli 2020.Geraadpleegd op11 oktober 2020.
  14. Kovacs, James,C#/.Net History Lesson(7 september 2007).Gearchiveerd op6 maart 2009.Geraadpleegd op18 juni 2009.
  15. (en)Hewlett-Packard, Intel en Microsoft,C# Language Specification(pdf)(december 2002 - 2e editie).Gearchiveerd op31 oktober 2020.Geraadpleegd op11 oktober 2020.
  16. (en)ECMA International,C# Language Specification, ECMA-334, 4e editie(pdf)(juni 2006).Gearchiveerd op2 december 2012.Geraadpleegd op11 oktober 2020.
  17. (en)What's New in C# 6.Microsoft(12 december 2018).Gearchiveerd op29 augustus 2020.Geraadpleegd op11 oktober 2020.
  18. 1234What's new in C# 7.0 through C# 7.3.Gearchiveerd op6 augustus 2020.Geraadpleegd op11 oktober 2020.
  19. What's new in C# 8.0.Gearchiveerd op6 september 2020.Geraadpleegd op11 oktober 2020.
  20. (en)What's new in C# 9.0.Microsoft(9 april 2020).Gearchiveerd op5 september 2020.Geraadpleegd op11 oktober 2019.
  21. .Net 5.0.Gearchiveerd op29 augustus 2020.Geraadpleegd op11 oktober 2020.
  22. (en)What's new in C# 10.0.Microsoft(21 februari 2023).Gearchiveerd op13 juli 2023.Geraadpleegd op22 augustus 2023.
  23. (en)Visual Studio 2022 version 17.0 Release Notes.Microsoft.Gearchiveerd op16 juli 2023.Geraadpleegd op22 augustus 2023.
  24. (en)What's new in C# 11.0.Microsoft(15 maart 2023).Gearchiveerd op11 juli 2023.Geraadpleegd op22 augustus 2023.
  25. (en)Visual Studio 2022 version 17.4 Release Notes.Microsoft.Gearchiveerd op6 augustus 2023.Geraadpleegd op22 augustus 2023.
  26. (en)What's new in C# 12.0.Microsoft(18 augustus 2023).Gearchiveerd op20 juli 2023.Geraadpleegd op22 augustus 2023.
  27. (en)Visual Studio 2022 version 17.6 Release Notes.Microsoft.Gearchiveerd op22 augustus 2023.Geraadpleegd op22 augustus 2023.
  28. ref
  29. ref
  30. ref
  31. https://web.archive.org/web/20150518104102/http://unity3d.com/learn/tutorials/modules/beginner/scripting/c-sharp-vs-javascript-syntax
  32. https://mono-ue.github.io/
  33. http://www.csscript.net/
  34. https://web.archive.org/web/20150518210710/http://www.doolwind.com/blog/why-you-should-use-csharp-for-your-scripting-language/
·Overleg sjabloon (de pagina bestaat niet) ·Sjabloon bewerken
·Overleg sjabloon ·Sjabloon bewerken
Overgenomen van "https://nl.wikipedia.org/w/index.php?title=C_Sharp&oldid=68575228"
Categorieën:
Verborgen categorieën:

[8]ページ先頭

©2009-2026 Movatter.jp