Introduzione a C# 1. C#: di che si tratta? C# è Un linguaggio object -oriented semplice, moderno,...

9
Introduzione a C# 1

Transcript of Introduzione a C# 1. C#: di che si tratta? C# è Un linguaggio object -oriented semplice, moderno,...

Page 1: Introduzione a C# 1. C#: di che si tratta? C# è Un linguaggio object -oriented semplice, moderno, general-purpose E un linguaggio robusto, ad alta produttività:

1

Introduzione a C#

Page 2: Introduzione a C# 1. C#: di che si tratta? C# è Un linguaggio object -oriented semplice, moderno, general-purpose E un linguaggio robusto, ad alta produttività:

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)

Page 3: Introduzione a C# 1. C#: di che si tratta? C# è Un linguaggio object -oriented semplice, moderno, general-purpose E un linguaggio robusto, ad alta produttività:

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)

Page 4: Introduzione a C# 1. C#: di che si tratta? C# è Un linguaggio object -oriented semplice, moderno, general-purpose E un linguaggio robusto, ad alta produttività:

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

Page 5: Introduzione a C# 1. C#: di che si tratta? C# è Un linguaggio object -oriented semplice, moderno, general-purpose E un linguaggio robusto, ad alta produttività:

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

Page 6: Introduzione a C# 1. C#: di che si tratta? C# è Un linguaggio object -oriented semplice, moderno, general-purpose E un linguaggio robusto, ad alta produttività:

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

Page 7: Introduzione a C# 1. C#: di che si tratta? C# è Un linguaggio object -oriented semplice, moderno, general-purpose E un linguaggio robusto, ad alta produttività:

7

Page 8: Introduzione a C# 1. C#: di che si tratta? C# è Un linguaggio object -oriented semplice, moderno, general-purpose E un linguaggio robusto, ad alta produttività:

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

Page 9: Introduzione a C# 1. C#: di che si tratta? C# è Un linguaggio object -oriented semplice, moderno, general-purpose E un linguaggio robusto, ad alta produttività:

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