introduzione a c# 1. c#: di che si tratta? c# è un linguaggio object -oriented semplice, moderno,...
TRANSCRIPT
1
Introduzione a C#
2
C#: di che si tratta?• C# è Un linguaggio object -oriented “semplice”,
moderno, general-purpose
• E’ un linguaggio robusto, ad alta produttività:– Check di tipi e dimensioni array, controlli inizializzazione variabili,
portabilità codice sorgente, garbage collection automatica
• Usato nella creazione di componenti software (si usa dire che C# è un linguaggio component-orientedsmo JIT)
3
• 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)
4
• Sviluppato da Microsoft come risposta a Java– Prima release nel 2000
• Il nome del linguaggio è stato ispirato dalla nota musicale C# (C diesis)– Nell’idea dei suoi ideatori doveva esser un passo sopra C,C++ e Java
• Principali sviluppatori: Anders Hejlsberg, Scott Wiltamuth
• C# standardizzato via ECMA( organizzazione internazionale, privata, non-profit per la standardizzazione dei sistemi informativi e di comunicazione) ed ISO (International Organization for Standardization)– Microsoft detiene comunque il controllo dell’architettura
5
Principali caratteristiche• Unified Object 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
6
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 Class Library 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
7
8
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• Type Safety
– Ancora più rigido del C++ nella conversione fra tipi– Non sono consentite variabili non inizializzate
• Garbage collection (rilascio automatico di memoria)• Gestione errori mediante eccezioni• Supporto per programmazione “component-oriented”
– Proprietà, eventi, interfacce, attributi
• Tipi unificati ed estensibili
9
Vantaggi• Include caratteristiche di vari linguaggi
– La sicurezza di Java• Completamente object oriented, Garbage collection,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• Class Library con un vasto insieme di funzionalità già pronte• Compilazione JIT