SlideShare a Scribd company logo
1 of 5
IMPARARE C# INTRODUZIONE   Era l’anno 2001, quando iniziai ad avvicinarmi al .NET Framework. Questa nuova tecnologia era ancora in versione beta con tutto ciò che ne conseguiva. Da allora sono passati cinque anni ed il .NET Framework studiato, realizzato e distribuito dalla Microsoft ha preso ormai piede in diversi ambiti e settori, a dimostrazione che la direzione presa cinque anni fa era probabilmente la più giusta. Nel corso di questi anni, il .NET Framework è cresciuto e maturato fino ad arrivare alla versione 2.0 (o 2005) corredato da svariati tool di sviluppo estremamente potenti e versatili. Indubbiamente, il più potente editor con cui scrivere software in .NET è Microsoft Visual Studio 2005. a cui si affiancano delle versioni più leggere denominate Express. Per scrivere software in CSharp 2005, la versione da scaricare gratuitamente è Microsoft Visual CSharp 2005 Express Edition, scaricabile dal seguente indirizzo: http://msdn.microsoft.com/vstudio/express/visualcsharp/. Scaricalo gratis su  http://www.punto-informatico.it/ PILibri
IMPARARE C# INDICE   Introduzione  . . . . . . . . . . . . . . . . . . . . . . . . . …… 7  Elementi del linguaggio   1.1 Il .net framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 1.2 Il linguaggio csharp . . . . . . . . . . . . . . . . . . . . . . . . . . . .13  Hello world   2.1 Fondamenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2 I tipi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 2.3 Variabili e costanti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.4 Operatori ed espressioni . . . . . . . . . . . . . . . . . . . . . . . .26 2.5 Enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.6 Istruzioni di controllo di flusso . . . . . . . . . . . . . . . . . . . .29  Classi ed oggetti   3.1 Oggetti e classi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 3.2 Membri statici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.3 Distruzione degli oggetti . . . . . . . . . . . . . . . . . . . . . . . .48 3.4 Parametri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.5 Overloading dei metodi . . . . . . . . . . . . . . . . . . . . . . . . .51 3.6 Proprietà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 Scaricalo gratis su  http://www.punto-informatico.it/ PILibri
IMPARARE C# Principi di object oriented programming 4.1 Pensare ad oggetti . . . . . . . . . . . . . . . . . . . . . . . . . . . .57 4.2 Incapsulamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.3 Ereditarietà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60 4.4 Poliformismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63 4.5 Astrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65 4.6 Sealed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69 4.7 I namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 4.8 A cosa servono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 4.9 Using . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71 4.10 Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71 4.11 Creazione di namespace personalizzati . . . . . . . . . . .72 4.12 Strutture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.13 Definire strutture . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74 4.14 Creare strutture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74 4.15 Interfacce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75 4.16 Definire ed implementare interfacce . . . . . . . . . . . . . .76 4.17 Sovrascrivere i membri dell’interfaccia . . . . . . . . . . . .78 4.18 Implementazione esplicita dell’interfaccia . . . . . . . . . 79 4.19 Poliformismo con le interfacce . . . . . . . . . . . . . . . . . . 81 4.20 Quando usare le interfacce e le classi astratte . . . . . .82 Scaricalo gratis su  http://www.punto-informatico.it/ PILibri
IMPARARE C# Array indici e collections   5.1 Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84 5.2 Foreach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88 5.3 Indexers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 5.4 Le collection incluse in system.collection . . . . . . . . . . .93 5.5 Collection interfaces . . . . . . . . . . . . . . . . . . . . . . . . . .100 5.6 Gestione delle eccezioni . . . . . . . . . . . . . . . . . . . . . . .101 5.7 Sollevare e gestire le eccezioni . . . . . . . . . . . . . . . . . 102 5.8 Gestione di più eccezioni . . . . . . . . . . . . . . . . . . . . . . 104 5.9 Finally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107 5.10 Eccezioni personalizzate . . . . . . . . . . . . . . . . . . . . . 109 5.11 Risollevare un’eccezione . . . . . . . . . . . . . . . . . . . . . 110 5.12 Utilizzare correttamente le eccezioni . . . . . . . . . . . . 112 5.13 Delegati ed eventi . . . . . . . . . . . . . . . . . . . . . . . . . . .112 5.14 Delegates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 5.15 Eventi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Scaricalo gratis su  http://www.punto-informatico.it/ PILibri
IMPARARE C# Novità C# 2.0 6.1 Generics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131 6.2 Tipi composti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142 6.3 Collection generiche . . . . . . . . . . . . . . . . . . . . . . . . . .149 6.4 Anonymous methods . . . . . . . . . . . . . . . . . . . . . . . . .152 6.5 Partial types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.6 Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154 Scaricalo gratis su  http://www.punto-informatico.it/ PILibri

More Related Content

What's hot

Il mio libro - My book (intro)
Il mio libro - My book (intro)Il mio libro - My book (intro)
Il mio libro - My book (intro)
pls3d
 
Depuratori Acqua Erogatori Gasatori Addolcitori Acqua Osmosi Inversa Rubinett...
Depuratori Acqua Erogatori Gasatori Addolcitori Acqua Osmosi Inversa Rubinett...Depuratori Acqua Erogatori Gasatori Addolcitori Acqua Osmosi Inversa Rubinett...
Depuratori Acqua Erogatori Gasatori Addolcitori Acqua Osmosi Inversa Rubinett...
Depuratori Acqua Osmosi Inversa Addolcitori Sinergroup
 
Tesi di laurea Mariela Nasi
Tesi di laurea Mariela NasiTesi di laurea Mariela Nasi
Tesi di laurea Mariela Nasi
Mariela Nasi
 
GFilosofi_brain-mind-and-behavior_a-neuroscientific-approach_2007
GFilosofi_brain-mind-and-behavior_a-neuroscientific-approach_2007GFilosofi_brain-mind-and-behavior_a-neuroscientific-approach_2007
GFilosofi_brain-mind-and-behavior_a-neuroscientific-approach_2007
Gabriele Filosofi
 

What's hot (12)

Il mio libro - My book (intro)
Il mio libro - My book (intro)Il mio libro - My book (intro)
Il mio libro - My book (intro)
 
Abstract Domenico Brigante
Abstract   Domenico BriganteAbstract   Domenico Brigante
Abstract Domenico Brigante
 
Depuratori Acqua Erogatori Gasatori Addolcitori Acqua Osmosi Inversa Rubinett...
Depuratori Acqua Erogatori Gasatori Addolcitori Acqua Osmosi Inversa Rubinett...Depuratori Acqua Erogatori Gasatori Addolcitori Acqua Osmosi Inversa Rubinett...
Depuratori Acqua Erogatori Gasatori Addolcitori Acqua Osmosi Inversa Rubinett...
 
Sviluppo Joomla! - Guida per principianti
Sviluppo Joomla! - Guida per principiantiSviluppo Joomla! - Guida per principianti
Sviluppo Joomla! - Guida per principianti
 
Manuale posa cortexa
Manuale posa cortexaManuale posa cortexa
Manuale posa cortexa
 
Progetto per lo sviluppo di un sistema di gestione della conoscenza per il pr...
Progetto per lo sviluppo di un sistema di gestione della conoscenza per il pr...Progetto per lo sviluppo di un sistema di gestione della conoscenza per il pr...
Progetto per lo sviluppo di un sistema di gestione della conoscenza per il pr...
 
Tesi di laurea Mariela Nasi
Tesi di laurea Mariela NasiTesi di laurea Mariela Nasi
Tesi di laurea Mariela Nasi
 
Sviluppo e confronto di tecniche di stima della traiettoria di sensori 3D
Sviluppo e confronto di tecniche di stima della traiettoria di sensori 3D Sviluppo e confronto di tecniche di stima della traiettoria di sensori 3D
Sviluppo e confronto di tecniche di stima della traiettoria di sensori 3D
 
GFilosofi_brain-mind-and-behavior_a-neuroscientific-approach_2007
GFilosofi_brain-mind-and-behavior_a-neuroscientific-approach_2007GFilosofi_brain-mind-and-behavior_a-neuroscientific-approach_2007
GFilosofi_brain-mind-and-behavior_a-neuroscientific-approach_2007
 
Software licensing & data governance. Libro di S. Aliprandi (anteprima)
Software licensing & data governance. Libro di S. Aliprandi (anteprima)Software licensing & data governance. Libro di S. Aliprandi (anteprima)
Software licensing & data governance. Libro di S. Aliprandi (anteprima)
 
Il Linux OpenSound System
Il Linux OpenSound SystemIl Linux OpenSound System
Il Linux OpenSound System
 
ECDL-modulo3
ECDL-modulo3ECDL-modulo3
ECDL-modulo3
 

Similar to Imparare c n.104

Il tutorial di Python
Il tutorial di PythonIl tutorial di Python
Il tutorial di Python
AmmLibera AL
 
Il Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - Tesi
Il Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - TesiIl Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - Tesi
Il Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - Tesi
Francesco Magagnino
 
GaPiL - Guida alla Programmazione in Linux
GaPiL - Guida alla Programmazione in LinuxGaPiL - Guida alla Programmazione in Linux
GaPiL - Guida alla Programmazione in Linux
AmmLibera AL
 
Validation and analysis of mobility models
Validation and analysis of mobility modelsValidation and analysis of mobility models
Validation and analysis of mobility models
Umberto Griffo
 
mastertesi
mastertesimastertesi
mastertesi
Reply
 
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
fcecutti
 
Orchestrazione delle risorse umane nel BPM
Orchestrazione delle risorse umane nel BPMOrchestrazione delle risorse umane nel BPM
Orchestrazione delle risorse umane nel BPM
Michele Filannino
 
CaputiDomenicoMagistrale
CaputiDomenicoMagistraleCaputiDomenicoMagistrale
CaputiDomenicoMagistrale
Domenico Caputi
 

Similar to Imparare c n.104 (20)

Il tutorial di Python
Il tutorial di PythonIl tutorial di Python
Il tutorial di Python
 
Openfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistemsOpenfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistems
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
 
Il Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - Tesi
Il Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - TesiIl Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - Tesi
Il Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - Tesi
 
Piano Nazionale Scuola Digitale (risorse integrative)
Piano Nazionale Scuola Digitale (risorse integrative)Piano Nazionale Scuola Digitale (risorse integrative)
Piano Nazionale Scuola Digitale (risorse integrative)
 
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientale
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientaleInterfaccia utente basata su eye-tracking per sistemi di controllo ambientale
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientale
 
Dispensa Interazione Uomo Macchina
Dispensa Interazione Uomo MacchinaDispensa Interazione Uomo Macchina
Dispensa Interazione Uomo Macchina
 
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEMTesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
 
GaPiL - Guida alla Programmazione in Linux
GaPiL - Guida alla Programmazione in LinuxGaPiL - Guida alla Programmazione in Linux
GaPiL - Guida alla Programmazione in Linux
 
Pattern Recognition Lecture Notes
Pattern Recognition Lecture NotesPattern Recognition Lecture Notes
Pattern Recognition Lecture Notes
 
Publish/Subscribe EDI with Content-Based Routing
Publish/Subscribe EDI with Content-Based RoutingPublish/Subscribe EDI with Content-Based Routing
Publish/Subscribe EDI with Content-Based Routing
 
Dynamic Scheduling
Dynamic SchedulingDynamic Scheduling
Dynamic Scheduling
 
Validation and analysis of mobility models
Validation and analysis of mobility modelsValidation and analysis of mobility models
Validation and analysis of mobility models
 
mastertesi
mastertesimastertesi
mastertesi
 
repairpdf_Oy51nCFX
repairpdf_Oy51nCFXrepairpdf_Oy51nCFX
repairpdf_Oy51nCFX
 
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
 
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
 
Tesi Tamiazzo09
Tesi Tamiazzo09Tesi Tamiazzo09
Tesi Tamiazzo09
 
Orchestrazione delle risorse umane nel BPM
Orchestrazione delle risorse umane nel BPMOrchestrazione delle risorse umane nel BPM
Orchestrazione delle risorse umane nel BPM
 
CaputiDomenicoMagistrale
CaputiDomenicoMagistraleCaputiDomenicoMagistrale
CaputiDomenicoMagistrale
 

Imparare c n.104

  • 1. IMPARARE C# INTRODUZIONE Era l’anno 2001, quando iniziai ad avvicinarmi al .NET Framework. Questa nuova tecnologia era ancora in versione beta con tutto ciò che ne conseguiva. Da allora sono passati cinque anni ed il .NET Framework studiato, realizzato e distribuito dalla Microsoft ha preso ormai piede in diversi ambiti e settori, a dimostrazione che la direzione presa cinque anni fa era probabilmente la più giusta. Nel corso di questi anni, il .NET Framework è cresciuto e maturato fino ad arrivare alla versione 2.0 (o 2005) corredato da svariati tool di sviluppo estremamente potenti e versatili. Indubbiamente, il più potente editor con cui scrivere software in .NET è Microsoft Visual Studio 2005. a cui si affiancano delle versioni più leggere denominate Express. Per scrivere software in CSharp 2005, la versione da scaricare gratuitamente è Microsoft Visual CSharp 2005 Express Edition, scaricabile dal seguente indirizzo: http://msdn.microsoft.com/vstudio/express/visualcsharp/. Scaricalo gratis su http://www.punto-informatico.it/ PILibri
  • 2. IMPARARE C# INDICE Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . …… 7 Elementi del linguaggio 1.1 Il .net framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 1.2 Il linguaggio csharp . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Hello world 2.1 Fondamenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2 I tipi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 2.3 Variabili e costanti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.4 Operatori ed espressioni . . . . . . . . . . . . . . . . . . . . . . . .26 2.5 Enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.6 Istruzioni di controllo di flusso . . . . . . . . . . . . . . . . . . . .29 Classi ed oggetti 3.1 Oggetti e classi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 3.2 Membri statici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.3 Distruzione degli oggetti . . . . . . . . . . . . . . . . . . . . . . . .48 3.4 Parametri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.5 Overloading dei metodi . . . . . . . . . . . . . . . . . . . . . . . . .51 3.6 Proprietà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 Scaricalo gratis su http://www.punto-informatico.it/ PILibri
  • 3. IMPARARE C# Principi di object oriented programming 4.1 Pensare ad oggetti . . . . . . . . . . . . . . . . . . . . . . . . . . . .57 4.2 Incapsulamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.3 Ereditarietà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60 4.4 Poliformismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63 4.5 Astrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65 4.6 Sealed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69 4.7 I namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 4.8 A cosa servono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 4.9 Using . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71 4.10 Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71 4.11 Creazione di namespace personalizzati . . . . . . . . . . .72 4.12 Strutture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.13 Definire strutture . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74 4.14 Creare strutture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74 4.15 Interfacce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75 4.16 Definire ed implementare interfacce . . . . . . . . . . . . . .76 4.17 Sovrascrivere i membri dell’interfaccia . . . . . . . . . . . .78 4.18 Implementazione esplicita dell’interfaccia . . . . . . . . . 79 4.19 Poliformismo con le interfacce . . . . . . . . . . . . . . . . . . 81 4.20 Quando usare le interfacce e le classi astratte . . . . . .82 Scaricalo gratis su http://www.punto-informatico.it/ PILibri
  • 4. IMPARARE C# Array indici e collections 5.1 Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84 5.2 Foreach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88 5.3 Indexers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 5.4 Le collection incluse in system.collection . . . . . . . . . . .93 5.5 Collection interfaces . . . . . . . . . . . . . . . . . . . . . . . . . .100 5.6 Gestione delle eccezioni . . . . . . . . . . . . . . . . . . . . . . .101 5.7 Sollevare e gestire le eccezioni . . . . . . . . . . . . . . . . . 102 5.8 Gestione di più eccezioni . . . . . . . . . . . . . . . . . . . . . . 104 5.9 Finally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107 5.10 Eccezioni personalizzate . . . . . . . . . . . . . . . . . . . . . 109 5.11 Risollevare un’eccezione . . . . . . . . . . . . . . . . . . . . . 110 5.12 Utilizzare correttamente le eccezioni . . . . . . . . . . . . 112 5.13 Delegati ed eventi . . . . . . . . . . . . . . . . . . . . . . . . . . .112 5.14 Delegates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 5.15 Eventi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Scaricalo gratis su http://www.punto-informatico.it/ PILibri
  • 5. IMPARARE C# Novità C# 2.0 6.1 Generics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131 6.2 Tipi composti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142 6.3 Collection generiche . . . . . . . . . . . . . . . . . . . . . . . . . .149 6.4 Anonymous methods . . . . . . . . . . . . . . . . . . . . . . . . .152 6.5 Partial types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.6 Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154 Scaricalo gratis su http://www.punto-informatico.it/ PILibri