C# (uttales C sharp) er et objektorientertprogrammeringsspråk utviklet av Microsoft som en del av deres satsing på .NET-plattformen. Microsoft valgte å basere C# på programmeringsspråkene C++ og Java. C# ble designet for å balansere styrke (C++) og rask utvikling (Java).
Sjefarkitekt for gruppen som jobber med C# og utvikler C# hos Microsoft er danske Anders Hejlsberg. Microsofts C#-kompilator kompilerer ikke C#-kode til maskinkode som kan kjøres direkte fra en datamaskin, slik tradisjonelle kompilatorer gjør. I stedet blir alt kompilert til mellomformat, som beskrevet for .NET.
Datatyper
En C#-bruker kan definere egne datatyper, bruke de innebygde, eller fra .NET-rammeverket. Primitive datatyper blir automatisk konvertert mellom ren binærform og objektform ut ifra hva brukeren bruker det til, dette kalles boxing og unboxing.
C# støtter heltall med og uten fortegn og flyttall opp til 128-bit, men støtter ikke 80-bit [IEEE] flyttall (80-bit).
I motsetning til programmeringsspråkene C og C++, støtter ikke C# heltall som boolske verdier, men programmereren må eksplisitt bruke datatypen bool.