C# on üks.NET-raamistiku keeltest. Tema praegust arendust juhibAnders Hejlsberg. Keele nimi on tuletatud programmeerimiskeeleC++ nimest ning samuti tähistab nootiC diees, kuna '++' tähendab suurendamist ühe võrra, ning samuti '#' on nagu kaks märki '+' teineteise peal.[1]
ECMA standardi järgi on C# disaini põhimõtted järgmised:[2]
C# on lihtne kaasaegne üldotstarbelineobjektorienteeritud programmeerimiskeel.
Keel ja selle teostused toetavad tarkvaraarenduse põhimõtteid nagutugev tüüpimine, massiivi piiride kontrollimine, väärtustamata muutujate kasutamise avastamine ning automaatnemälukoristus. Tähtsad on tarkvara robustsus ja programmeerija tootlikkus.
Keel on mõeldud tarkvarakomponentide loomiseks hajusates keskkondades.
Lähtekoodiporditavus on väga oluline, nagu ka äratuntavus programmeerijatele, kes on tuttavad keeltega C ja C++.
C# on sobilik rakenduste kirjutamiseks erinevates süsteemides, alates keerulisi operatsioonisüsteeme kasutavatest süsteemidest lõpetadesmanussüsteemidega.
Kuigi C#-rakendused peaksid kasutama mälu ja arvutusvõimsust säästlikult, ei võistle keel jõudluses ega mälukasutuses otseselt C või assemblerkeelega.