Guida C#
Introduzione a C#
A detta di molti addetti ai lavori il linguaggio C# e l'associato ambiente del .NET Framework costituiscono attualmente la più importante tecnologia disponibile per lo sviluppo di applicazioni. Il .NET Framework è progettato per fornire un ambiente all'interno del quale è possibile sviluppare praticamente tutti i tipi di applicazioni che possono girare su Windows e il linguaggio C# è...
Caratteristiche del .NET Framework
Per comprendere il significato di .NET bisogna considerare la natura delle tecnologie Windows apparse negli ultimi 20 anni. Sebbene esse possano sembrare apparentemente molto differenti, tutti i sistemi operativi Windows, da Windows NT 3.1 a Windows 10, utilizzano praticamente la stessa Windows API (interfaccia di programmazione). Ad ogni nuova versione di Windows negli anni sono state aggiunte nuove funzioni...
Editor di sviluppo: SharpDevelop
Per lavorare in C# utilizzeremo un semplice ed ottimo editor gratuito chiamato SharpDevelop. Possiamo scaricarlo all'indirizzo:
http://www.icsharpcode.net/OpenSource/SD/Download/
Scarichiamo dalla pagina, cliccando sul link Setup Download, la versione 5
Scaricato il file di installazione, procediamo ad installarlo nella directory che vogliamo. Una volta installato lanciamo il programma:
Clicchiamo in alto a sinistra su File -> New -> Solution
Facendo questo compare la finestra New Project
Da...
Costrutti di base C#
Per prima cosa osserviamo il codice sorgente del file Program.cs che abbiamo creato, mediante SharpDevelop, alla lezione precedente. L'analisi di questo primo blocco di codice ci aiuterà a capire come funziona C# e come è possibile scrivere dei programmi in questo linguaggio di programmazione.
Questo il codice del file in questione:
using System;
namespace test1
{
class Program
...
Variabili, tipi di dato ed espressioni in C#
Una variabile identifica una parte di memoria che serve a contenere dei dati modificabili nel corso dell'esecuzione di un programma. Una variabile è caratterizzata da un nome (sequenza di caratteri e cifre) e da un valore.
Un'espressione è la possibile combinazione di valori, variabili, operatori e funzioni che sono interpretate (valutate) secondo particolari regole, di precedenza e di associazione, e...
Conversione di tipi di dati in C#
Spesso quando si programma è necessario convertire un tipo di dati in un altro e in C# esistono due tipi di conversione, implicita ed esplicita.
La conversione tra tipi diversi spesso può essere gestita in modo automatico o implicito solo se i valori coinvolti non vengono alterati in alcun modo.
In C# la conversione implicita è supportata nel seguente modo
Da...
Operatori in C#
In ogni linguaggio di programmazione un elemento fondamentale è costituito dagli operatori. Al termine della precedente lezione, in cui abbiamo introdotto il concetto di variabile ed espressione, abbiamo già visto quali sono alcuni degli operatori matematici più comuni.
In questa lezione affronteremo in modo molto più approfondito la tematica passando in rassegna tutti gli operatori supportati da C#. Nelle nostre...
Istruzioni condizionali C#: i costrutti switch e if/else
Le istruzioni condizionali, in qualsiasi linguaggio di programmazione, permettono di verificare determinate condizioni come ad esempio l'uguaglianza, la disuguaglianza o semplicemente se un elemento è maggiore di un altro. Sono utilizzate per consentire al programma di "prendere decisioni" a seconda del verificarsi o meno di una data condizione. In C# esistono due costrutti fondamentali, ovvero switch e if/else. Vediamoli...
I cicli in C#: while, do-while, for e foreach
Le istruzioni di iterazione (o più banalmente "cicli") possono essere utilizzate per creare cicli per fare in modo, cioè, che le istruzioni incorporate siano eseguite un determinato numero di volte, in base ai criteri di terminazione del ciclo. In questa lezione vedremo come gestire i cicli in C# attraverso diversi costrutti: while, do-while, for e foreach.
Il ciclo while in...
C# array
In questa lezione vedremo come gestire gli array in C#. Un array è una variabile che contiene più elementi che vengono gestiti tramite un indice. Gli array in C# vanno dichiarati specificando il nome, la dimensione ed il tipo di dati che devono contenere.
Possiamo creare array di qualunque tipo (numerica, stringa, ecc.). Nell'esempio che segue vedremo come creare un...
Lavorare con le stringhe in C#
In informatica possiamo definire una stringa come una sequenza di caratteri con un ordine predefinito. Le stringhe sono fondamentali per la programmazione in C# perché permettono di gestire un certo tipo di informazione. Possiamo anche dire che una stringa è come un "array particolare" dove ad ogni posizione è presente un particolare carattere.
Vediamo un primo esempio per meglio chiarire...
Le eccezioni: gestire gli errori in C#
Le applicazioni sono soggette ad errori e quindi quando si sviluppa un'applicazione è necessario svolgere un'attenta attività di testing ma soprattutto scrivere codice che gestisca opportunamente tali situazioni. Gestire le eccezioni è fondamentale in C# perché consente di rintracciare e gestire qualunque errore possa verificarsi. Una corretta gestione delle eccezioni, quindi, è necessaria affinché i nostri programmi funzionino nel...
Classi e oggetti in C#
Il concetto di classe è centrale in C#, così come in ogni altro linguaggio di programmazione orientato agli oggetti. In questa lezione cercheremo di introdurre il lettore ai concetti basilari circa il funzionamento delle classi. Per prima cosa, tuttavia, dobbiamo definire con precisione cos'è una classe.
Cos'è una classe? Cos'è un oggetto?
Una classe è un modo di rappresentare una serie...
Ereditarietà e interfacce in C#
L'ereditarietà è uno dei concetti chiave nella programmazione OOP. In pratica l'ereditarietà esprime la relazione che collega due classi all'interno di un programma. Nella programmazione a oggetti esistono due tipi di ereditarietà: l'ereditarietà di implementazione e l'ereditarietà di interfaccia.
Ereditarietà di implementazione significa che un tipo deriva da un altro tipo base, prendendo tutti i membri e le funzioni del...
Utilizzo di I/0 in C# – Leggere e scrivere file di testo
Le funzioni di Input/Output (abbreviate come funzioni I/O) ci permettono di leggere e scrivere dati su file, sia in modo binario che testuale. In questa lezione della nostra guida a C# vedremo le funzioni che operano in modalità testuale.
Fortunatamente per noi, il framework rende davvero facile manipolare file. Tramite un set di classi molto completo vedremo come scrivere e...
Alcune classi del Framework .NET
Ci sono molte classi nel Framework, ne abbiamo visto alcune per la gestione degli errori, dei file ma in genere qualunque aspetto in C# viene gestito tramite una classe apposita del Framework.
In questa lezione vorrei mostrarvi due classi che, a mio avviso, possono risultare particolarmente utili ed interessanti.
La classe System.Net
Vi ricordate quanti passaggi venivano richiesti in Visual Basic per...
Un’applicazione semplice con SharpDevelop
Vediamo adesso come sia possibile in modo semplice e veloce sviluppare un'applicazione Windows usando Sharpdevelop.
Dal menu File di SharpDevelop scegliamo di creare una nuova applicazione di tipo Windows:
Creato il nuovo progetto, all'interno dell'ambiente di sviluppo, clicchiamo sul tab Design:
In questo modo, possiamo vedere i form (per tornare al sorgente basta cliccare sul tab Source). In modalità Design possiamo trascinare...