90 likes | 306 Views
Introduzione a C#. C# : di che si tratta?. C# è Un linguaggio object -oriented “ semplice ”, moderno , general-purpose E’ un linguaggio robusto , ad alta produttività :
E N D
C#: di che si tratta? • C# è Un linguaggio object -oriented “semplice”, moderno, general-purpose • E’ un linguaggiorobusto, ad altaproduttività: • Check di tipi e dimensioni array, controlliinizializzazionevariabili, portabilitàcodicesorgente, garbage collection automatica • Usatonellacreazionedicomponenti software (siusa dire che C# è un linguaggiocomponent-orientedsmo JIT)
Facile da imparare per programmatori aventi familiarità con C++,Java (come Java afferisce alla famiglia C/C++) • Utilizzabile anche in ambito embedded • Ottime performances (grazie al peculiare meccansimo meccanismo di compilazione ed esecuzione – JIT)
Sviluppatoda Microsoft come risposta a Java • Prima release nel 2000 • Il nome del linguaggio è statoispiratodalla nota musicale C# (C diesis) • Nell’ideadeisuoiideatoridovevaesser un passosopra C,C++ e Java • Principalisviluppatori: Anders Hejlsberg, Scott Wiltamuth • C# standardizzato via ECMA( organizzazioneinternazionale, privata, non-profit per la standardizzazionedeisistemiinformativi e dicomunicazione) edISO (International OrganizationforStandardization) • Microsoft detienecomunqueilcontrollodell’architettura
Principali caratteristiche • UnifiedObject System • Qualsiasi tipo è un oggetto, anche i cosiddetti tipi primitivi(tipi base) • Meccanismo di ereditarietà singola • Uso di interfacce • Overloading operatori • Structs • “Tipi” leggeri (ed efficienti) • Delegates • Simili ai puntatori a funzione del C++ • Direttive di pre-processore
C# ed il .NET framework • Il compilatore C# produce codice intermedio MSIL • Codice e risorse (es. bitmap) formano uno o più Assembly • Assembly e manifest possono risiedere in .exe o .dll • Il programma C# può utilizzare la ClassLibrary che è messa a disposizione dal CLR • Il CLR carica il codice MSIL e ne traduce le parti da eseguire in linguaggio macchina, compilandole con il JIT
Obiettivi di C# • Obiettivi del C#? • Fornire agli sviluppatori un unico linguaggio con: • Un insieme completo di funzionalità • Una sintassi semplice e consistente • Aumentare la produttività eliminando problematiche tipiche • TypeSafety • Ancora più rigido del C++ nella conversione fra tipi • Non sono consentite variabili non inizializzate • Garbagecollection (rilascio automatico di memoria) • Gestione errori mediante eccezioni • Supporto per programmazione “component-oriented” • Proprietà, eventi, interfacce, attributi • Tipi unificati ed estensibili
Vantaggi • Include caratteristiche di vari linguaggi • La sicurezza di Java • Completamente objectoriented, Garbagecollection,controllo dei limiti degli array a run-time, gestione eccezioni • Semplicità • Potenza ed espressività del C++ • Enums, overloading di operatori, puntatori a funzione(sotto forma di delegates),Structs, passaggio dei parametri per riferimento o valore, manipolazione diretta della memoria con puntatori • Tutti i vantaggi del .NET framework • ClassLibrary con un vasto insieme di funzionalità già pronte • Compilazione JIT