C Sharp

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Μετάβαση σε: πλοήγηση, αναζήτηση
To Λογότυπο της C#.

C Sharp (Γλώσσα Προγραμματισμού)[Επεξεργασία | επεξεργασία κώδικα]

Η C# (C Sharp, ελληνική προφ. Σι Σάρπ,) είναι μια γλώσσα προγραμματισμού Η/Υ. Δημιουργήθηκε απο την Microsoft μέσα από την πλατφόρμα .NET και αργότερα αναγνωριστηκε επισήμως απο την Ecma (ECMA-334) και την ISO (ISO/IEC 2327:2006). Είναι μια απ τις γλώσσες προγραμματισμού που δημιουργήθηκαν για την Common Language Infrastructure. O κύριος σκοπός της γλώσσας είναι να είναι απλή αντικειμενοστρεφής γλώσσα για γενική χρήση. Ο διοικητής της ομάδα που διαχειρίζεται την γλώσσα ονομάζεται Anders Hejlsberg. Στις 15 Αυγούστου 2012 κυκλοφόρησε η έκδοση 5.0 η οποία είναι η πιο πρόσφατη μέχρι σήμερα.

Ιστορία[Επεξεργασία | επεξεργασία κώδικα]

Κατά την διάρκεια της δημιουργείας της πλατφόρμας .ΝΕΤ οι κλάσσεις και οι βιβλιοθήκες γράφτηκαν χρησιμοποιώντας ένα κομπάιλερ με το όνομα Simple Managed C (SMC). Τον Ιανουάριο του 1999 ο Anders Hejlsberg συγκρότησε μια ομάδα με σκοπό να φτιάξει μια καινούρια γλώσσα με όνομα Cool (C-like Object Oriented Language). Παρόλο που η Microsoft σκεφτόταν να κρατήσει το ονομα Cool σαν το τελικό όνομα της γλώσσας αυτό δεν έγινε ποτέ για λόγους πνευματικών δικαιωματών. Μέχρι τον Ιούλιο του 2000 όπου ανακοινώθηκε η πλατφόρμα .NET η γλώσσα είχε είδη μεταονομαστεί σε C# στην οποία αργότερα εισήχθησαν οι βιβλιοθήκες της ASP.NET.

Ο James Gosling, (σχεδιαστής της Java) το 1994 μαζί με τον Bill Joy (συνιδρυτής της Sun Microsystems)αποκάλεσαν την C# μια απομίμιση της Java. Ο Gosling επίσης συμπλήρωσε οτι η C# είναι ίδια με την Java απλά χωρίς αξιοπιστεία παραγωγηκώτητα και ασφάλεια. Οι συγγραφείς ενος βιβλίου της C# ισχυρίστικαν οτι η Java και η C# ειναι πανομοιότυπες επαναληπτικές και χωρίς καινοτομίες. Τον Ιούνιο του 2000 ο Anders Hejlsberg υποστήριξε οτι η C# δεν είναι κλώνος της Java αλλά οτι είναι πολύ πιο κοντά στην C++.

Από τότε που κυκλοφόρησε η δεύτερη έκδοση της C# το Νοέμβριο του 2005, η C# και η Java άρχισαν να απομακρύνονται η μία από την άλλη, με αποτέλεσμα όσο περνάει ο καιρός να μοιάζουν όλο και λιγότερο. Μια από τις πρώτες σημαντικές διαφορές ήταν στην υλοποιήση των generic object . Η C# παρέχει "πρώτης-κλάσης" generic objects τα οποία μπορούν να χρησιμοποιηθούν σαν οποιαδήποτε άλλη κλάση με τον κώδικα να εκτελείται κατά τη διάρκεια της φόρτωσής της. Αντιθέτως τα generic object της Java παρέχονται από τη γλώσσα κατά τη διάρκεια της σύνταξής της και δεν επηρεάζουν τον ήδη υπάρχων κώδικα. Επιλέον η C# πρόσθεσε κάποια ακόμα χαρακτηριστικά στην τρίτη έκδοσή της τα οποία επιτρέπουν στους προγραμματιστές να χρησιμοποιουν τεχνικές όπως τα closures.

Η C# είχε κάποτε μια μασκότ που ονομαζόταν Andy (Αντι) σαν φόρος τιμης στον σχεδιαστή της, αλλά αποσύρθηκε στις 29 Ιανουαρίου του 2004.

Όνομα[Επεξεργασία | επεξεργασία κώδικα]

Το όνομα C sharp εμπνεύστηκε από μια μουσική σημειογραφεία. Εξαιτίας διαφώρων τεχνικών περιορισμών προβολής και επειδή το σύμβολο sharp ♯ δεν υφίσταται στα απλά πληκτρολόγια χρησιμοποιήθηκε το αποτέλεσμα του συνδιασμου shift + 3 (#) για την αναπαράσταση της γλώσσας. Η συγκεκριμένη κατάληξη έχει χρησιμοποιηθεί από αρκετές ακόμα γλώσσες της .ΝΕΤ όπως η A# η F# και η Eiffel#.

Εκδώσεις[Επεξεργασία | επεξεργασία κώδικα]

Έκδοση Γλώσσα Προγραμματισμού Ημερομηνία .NET Framework Visual Studio
ECMA ISO/IEC Microsoft
C# 1.0 December 2002 Απρίλιος 2003 Ιανουάριος 2002 Ιανουάριος 2002 .NET Framework 1.0 Visual Studio .NET 2002
C# 1.2 Οκτώβρης 2003 Απρίλιος 2003 .NET Framework 1.1 Visual Studio .NET 2003
C# 2.0 June 2006 September 2006 September 2005[note 1] Νοέμβριος 2005 .NET Framework 2.0 Visual Studio 2005
C# 3.0 None[note 2] Αύγουστος 2007 Νοέμβριος 2007

.NET Framework 2.0 (Except LINQ/Query Extensions)[1]
.NET Framework 3.0 (Except LINQ/Query Extensions)[1]
.NET Framework 3.5

Visual Studio 2008
Visual Studio 2010
C# 4.0 Απρίλιος 2010 Απρίλιος 2010 .NET Framework 4 Visual Studio 2010
C# 5.0 Ιούνιος 2013 Αύγουστος 2012 .NET Framework 4.5 Visual Studio 2012
Visual Studio 2013
C# 6.0 Status Αναμονή .NET Framework 4.6 Visual Studio 2015
Περίλιψη εκδόσεων
C# 2.0 C# 3.0 C# 4.0 C# 5.0 [2] Μελλοντικές Εκδόσεις
Πρόσθετα
Χαρακτηριστικά
  • Generics[3]
  • Partial types[3]
  • Anonymous methods[3]
  • Iterators[3]
  • Nullable types[3]
  • Getter/setter separate accessibility[3]
  • Method group conversions (delegates)[3]
  • Co- and Contra-variance for delegates[3]
  • Static classes[3]
  • Implicitly typed local variables[4]
  • Object and collection initializers[4]
  • Auto-Implemented properties[4]
  • Anonymous types[4]
  • Extension methods[4]
  • Query expressions[4]
  • Lambda expressions[4]
  • Expression trees[4]
  • Partial methods[5]
  • Dynamic binding[6]
  • Named and optional arguments[6]
  • Generic co- and contravariance[6]
  • Embedded interop types ("NoPIA")[6]
  • Asynchronous methods[7]
  • Caller info attributes[7]
C# 6.0 Στον Σχεδιασμό
  • Compiler-as-a-service (Roslyn)
  • Import of static type members into namespace[8]
  • Exception filters[8]
  • Await in catch/finally blocks[8]
  • Auto property initializers[8]
  • Default values for getter-only properties[8]
  • Expression-bodied members[8]
  • Null propagator (Succinct null checking)[8]
  • String Interpolation[8]
  • nameof operator[8]
  • Parameterless struct constructors[8]
  • Dictionary initializer[8]
Προτάσεις για την C# 7.0
  • Declaration expressions[9]
  • Parameter arrays for IEnumerable interfaces[9]

Σημειώσεις[Επεξεργασία | επεξεργασία κώδικα]

  1. The Microsoft C# 2.0 specification document only contains the new 2.0 features. For older features use the 1.2 specification above.
  2. No ECMA or ISO/IEC specifications exist for C# 3.0, 4.0 or 5.0.

Παραπομπές[Επεξεργασία | επεξεργασία κώδικα]

  1. 1,0 1,1 «Using C# 3.0 from .NET 2.0». Danielmoth.com. May 13, 2007. http://www.danielmoth.com/Blog/using-c-30-from-net-20.aspx. Ανακτήθηκε στις October 4, 2012. 
  2. Hejlsberg, Anders. «Future directions for C# and Visual Basic». C# lead architect. Channel 9. http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-816T. Ανακτήθηκε στις September 21, 2011. 
  3. 3,0 3,1 3,2 3,3 3,4 3,5 3,6 3,7 3,8 «What's new in the C# 2.0 Language and Compiler». Microsoft Developer Network. Microsoft. http://msdn.microsoft.com/en-us/library/7cz8t42e(v=vs.80).aspx. Ανακτήθηκε στις 11 Ιούνιος 2014. 
  4. 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 Hejlsberg, Anders; Torgersen, Mads. «Overview of C# 3.0». Microsoft Developer Network. MIcrosoft. http://msdn.microsoft.com/en-us/library/bb308966.aspx. Ανακτήθηκε στις 11 Ιούνιος2014. 
  5. Ghosh, Wriju. «C# 3.0 : Partial Methods». MSDN Blogs. Microsoft. http://blogs.msdn.com/b/wriju/archive/2007/12/13/c-3-0-partial-methods.aspx. Ανακτήθηκε στις 11 Ιούνιος2014. 
  6. 6,0 6,1 6,2 6,3 Burrows, Chris. «C# 4.0 - New C# Features in the .NET Framework 4». Microsoft Developer Network. Microsoft. http://msdn.microsoft.com/en-us/magazine/ff796223.aspx. Ανακτήθηκε στις 11 Ιούνιος2014. 
  7. 7,0 7,1 «An Introduction to New Features in C# 5.0». MSDN Blogs. Microsoft. http://blogs.msdn.com/b/mvpawardprogram/archive/2012/03/26/introduction-of-new-features-in-c-5-0.aspx. Ανακτήθηκε στις 11 June 2014. 
  8. 8,00 8,01 8,02 8,03 8,04 8,05 8,06 8,07 8,08 8,09 8,10 «Language feature implementation status». github. Microsoft. https://github.com/dotnet/roslyn/wiki/Languages-features-in-C%23-6-and-VB-14. Ανακτήθηκε στις 13 February 2015. 
  9. 9,0 9,1 «Area-Language Design». github. Microsoft. https://github.com/dotnet/roslyn/issues?q=is%3Aopen+label%3A%22Area-Language+Design%22+label%3A%221+-+Planning%22+. Ανακτήθηκε στις 13 February 2015. 
Commons logo
Τα Wikimedia Commons έχουν πολυμέσα σχετικά με το θέμα