C# (lexohet "si sharp") ështëgjuhë programuese moderne për zhvillimin e aplikacioneve softuerike. C# është gjuhe e thjeshtë cilaorientohet në objekte dhe ka rrënjët në familjenC të gjuhëve programuese, që do të thotë se kuptohet lehtë nga programerët eC ,C++, dheJAVA. Kjo gjuhë bën pjesë te gjuhët e larta programuese dhe ka ngjashmëri të madhe me to. Është gjuhë e krijuar dhe zhvilluar nga kompaniaMicrosoft së bashku me .NET platformën.C# është ndër gjuhët më të popullarizuara të përdorura në ditët e sotme, e përdorur nga miliona njerëz kjo për shkak së u zhvillua në kuadër të .NET platformës e cila ka gjetur përdorim të madh në shumë kompani,organizata dhe individ.
Projekti për krijimin dhe zhvillimin e C# filloi në dhjetor të vitit 1998 ngaMicrosoft dhe u lansua në verë të vitit 2000.Zhvillues kryesor ishteAnders Hejlsberg së bashku me ekipin e tij të përbërë ngaPeter Golde,Peter Hallam,Shon Katzenberger,Todd Proebsting,Anson Horton dhe shumë të tjerë të cilët ndihmuan në dizajnimin e versioneve të mëvonshme.GjuhaC# së pari u quajt COOL (C Object Oriented Language) dhe u mendua të mbetet ky emër mirëpo nuk ishte e mundshme për shkak të prespektivës së markës tregtare. Për këtë gjuhaC# mori emrin e saj duke u inspiruar nga muzika.Simboli"#" muzikor paraqet një notë për një semiton më lart, sikurse që C# është më lart se C dhe C++.Në fillim kësaj gjuhe i referoheshin edhe siD-flat (shqip Cis), që paraqet të njëtën notë por të shprehur ndryshe.
C# është gjuhë e popullarizuar dhe moderne e përdorur nga miliona njerëz dhe e përhapur në të gjithë botën.Është gjuhë e lehtë për t'u mësuar (jo siC dheC++) dhe ndër më të përshtatshme për fillestarë.Kjo gjuhë shpesh është në konkurrencë me gjuhët e tjera të nivelit të lartë siç janëC,C++,JAVA etj.
Të gjitha këto gjuhë të larta programuese rrjedhin nga familja e njëjt e gjuhëve, për këtë aryse ka shumë debate se cila është më e përshtashme dhe më e lehtë për t'u përdorur.C++ është gjuhë më primitive, zakonisht e përshtatshme për programim në nivel më të ulët.Në dukje të parë mendohet se këto dy gjuhë janë shumë të ngjashmë dhe lehtë mund të behët tranzicioni nga njëra në tjetrën, mirëpo në fakt për shkak të dallimeve mes tyre kjo nuk është aq e lehtë sa mendohet.C++ preferohet kur kemi të punojmë ngushtë me procese harduerike ose për të bërë kërkesa speciale të përformancës (lojërat 3D).Për qëllim të tjera si ueb aplikacione,softuare të biznesit C++ nuk është e përshtatshme.Në C++ kemi kontroll të madh në krijimin e objekteve dhe ruajtjen e tyre nëstack,heap apo në pjesë të tjera të memories duke përdorur fjalën new.Kurse në C# ruajtja në momentin ë krijimit të objektit bëhet në mënyre implicite.Tipet e thjeshta (int, double,long ) ruhet në stack, kurse klasat ruhet në heap.Në të dy gjuhët ekzistojnë strukturat por implenetimet e tyre janë të ndryshme.Në C++ strukturat janë si klasat, përveç se trashëgimina dhe çasja janë publike dhe jo private.Në C# strukturat janë tipe numerike e jo refernciale prandaj të dhënat jipen me anë të vlerave.Në C++ programerët i krijojnë variablat private që të bëjnë enkapsulimin e tyre, pa e prishur ndërfaqen e Përdoruesve.Kjo paraqet përdorimin e vetive.Në C# vetitë janë anëtarë të klasave, të cilët te përdoruesi duken si variabla kurse te zhvilluesi si metoda.Kjo ndihmon në enkapsulimin dhe fshehjen totale të të dhënave duke ju mundësuar përdoruesëv çasje të shpejtë në të njëjtën kohë.
Java është ndër konkurrentët më serioz të C#.Këto dy gjuhë programuese kanë shumë dallime dha ngjashmëri mes tyre.Objektet e JAVA krijohen në heap duke përdorur fajlën neë, sikurse edhe në C#.Metodat që krijohen brenda klases duhet të jenë anëtarë të klasës apo metoda statike në të dy gjuhët.Të dyja përkrahin klasat abstrakte, trashëgiminë e shumëfishtë të ndërfaqeve, por lejojnë që një klasë të trashëgohet vetëm njëherë.Trajtimi i gabimeve gjithashtu është i ngjashëm, dhe bëhet me përdorimin e blloqeve try, catch, finally.Try shikon se a ka gabime, catch gjen gabimet dhe paralajmëron dhe finally bën lirimin e resurseve.Të gjitha gabimet (përjashtimet) rrjedhin nga klasaException.Deklarimi i instancave dhe anëtarëve statik zakonisht ndodh para thirrjes se konstruktorit si te JAVA ashtu edhe te C#.Përveq ngjashmërive këto dy gjuhë kanë edhe disa dallime.Për shembull të dyjat kanëMain metodën (metodën kryesore), por në C# main fillon me shkronjë të madhe kurse të JAVA me të vogël.Namespace në C# paraqesin një grup të koleksioneve të klasave të ngjashme me konstruktin e paketave te JAVA.Dallimi qëndron se te JAVA këto paketa diktojnë (tregojnë) strukturën e fajllave burimor, kurse në C# nuk e dallojnë pjesën fizike por vetëm strukturën logjike të fajllave.
Gjuha C# mund të përdoret për shumë lloje të aplikacioneve si për uebsajt,desktop aplikacione, lojëra, aplikacione telefonike.Duke qenë se është punuar për rreth një dekade me të, me lansimin e Windows 8 me stil të ri duke optimizuar interaksionin me prekje në tableta, C# është një ndër gjuhët që ofroi përkrahje të plotë për këto ndryshime.Edhe pse C# u krijua ngaMicrosoft, vetë gjuha dhe kohëzgjatja e startimit të programit (Runtime) janë të dokumentuara ngaECMA, duke i mundësuar të gjithëve të implementojnë C#.Mono Project me kod të hapur burimor, siguron veglat për krijimin e aplikacioneve me C# që punojnë në Linux, Mac OS X, iOS, dhe Android.Fuqia e C# qëndron se përkrah teknika të shumta programuese.Për shembull,veçori të objekt orientit, gjenerikët,pjesët dinamike dhe statike, dhe ka programim funksional.Gjithashtu përkrah listat, dhe shërbime të tjera sisandboxing,exception handling,thread management,garbage collector.C# ka sistem të unifikuar, që do të thotë se tipet e të dhënave siint dhedouble, trashëgohen nga një tip objekti rrënjë.Prandaj të gjitha tipet e të dhënave kanë një set të përbashkët të operatorëve që mundëson ruajtjen, transportimin dhe operimin në mënyrë konsistente.
Sikurse në të gjitha gjuhët e larta programuese edhe në C# programi i parë titullohet"Hello World".Ky program zakonisht përdoret për prezantimin e një gjuhe të re programuese. Në C# ky program duket kësisoj: