C#, pronunciato “Si Sharp”, è un linguaggio di programmazione semplice, moderno, orientato agli oggetti e indipendente dai tipi. C# ha le sue radici nella famiglia di linguaggi C e risulterà immediatamente familiare ai programmatori di C, C++, Java e JavaScript.

In questa sezione è riportata una guida al linguaggio di programmazione C# in cui, partendo dai concetti di base, fino ad esplorare le maggiori potenzialità offerte dal linguaggio, si alterneranno lezioni teoriche con esercizi applicativi di difficoltà crescente.

 

INTRODUZIONE

Introduzione al linguaggio C# e a .NET Framework

Primo programma – Hello World

Console Application con parametri da riga di comando

CONCETTI DI BASE

Tipi di dato in C#

Dichiarazione di variabili in C#

Ambito di una variabile (Scope)

Cast e conversioni di tipo

Operatori aritmetici e di assegnazione

Il tipo string

Il tipo struct

Il tipo enumerazione (enum)

Esercizi Input/Output, istruzioni in sequenza, operazioni aritmetiche

LA PROGRAMMAZIONE STRUTTURATA

La programmazione strutturata e il Teorema di Böhm-Jacopini

ISTRUZIONI DI SELEZIONE

Istruzioni if, if-else

Istruzione switch

Operatori di confronto

L’operatore condizionale ternario ?:

Elementi di logica (operatori logici in C#)

Esercizi if, if-else, switch e operatori logici

ISTRUZIONI DI ITERAZIONE

Ciclo while, do-while, for e foreach

Esercizi riassuntivi svolti sui cicli

ARRAY MONODIMENSIONALI (VETTORI)

Vettori (Array monodimensionali)

Caricamento di un vettore con dati letti da tastiera e controllo sui dati inseriti

Stampa a video del contenuto di un vettore

Copia di un vettore in un altro vettore

Ricerca del massimo e del minimo di un vettore e relative posizioni

Ricerca lineare di un elemento in un vettore (Ricerca lineare)

Ricerca binaria di un elemento in un vettore (Ricerca dicotomica)

Fusione di due vettori ordinati

Vettori ad occupazione variabile

Ordinamento per selezione (Selection sort)

Ordinamento per inserzione (Insertion sort)

Ordinamento a bolle (Bubble sort)

Vettori ordinati e totali parziali

La classe Array e i metodi Find, FindAll, FindIndex, FindLast, FindLastIndex, Sort, Reverse e BinarySearch

Language Integrated Query: i metodi Max, Min, Average, Sum

Strutture/Record (struct) – Tabelle

Esercizi riassuntivi svolti sui vettori

ARRAY BIDIMENSIONALI (MATRICI)

Matrici (Array bidimensionali)

Caricamento/acquisizione matrice per righe e per colonne

Calcolo della matrice trasposta

Somma tra matrici

Prodotto righe per colonne

Esercizi riassuntivi risolti sulle matrici

LA PROGRAMMAZIONE PROCEDURALE

La programmazione procedurale. Approccio Top-Down e Bottom-Up

Tecnica della scomposizione in sottoprogrammi

Passaggio di un Value Type – By Value

Passaggio di un Value Type – By Reference

Passaggio di un Reference Type – By Value

Passaggio di un Reference Type – By Reference

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI (OOP, Object Oriented Programming)

Introduzione alla programmazione orientata agli oggetti

Gli oggetti

Le classi

Attributi e Metodi

Incapsulamento/Information Hiding

Implementazione di classi, metodi, costruttori, distruttori, campi e proprietà in C#

Ereditarietà in C#

Polimorfismo e collegamento dinamico (dynamic binding)

Classi astratte in C#

Le interfacce in C#

Relazione tra classi (implementazioni in C# di associazioni)

Esempi di associazione tra classi in C#

La classe List<T> (List Generics)

LINQ (Language-Integrated Query)

Esercizi riassuntivi sulla programmazione ad oggetti in C#

GESTIONE DEI FILE DI TESTO E BINARI IN C#

Introduzione al “file system”

La classe StreamWriter

La classe StreamReader

L’istruzione using

Gestione delle eccezioni (blocco try-catch-finally)

La classe BinaryWriter

La classe BinaryReader

La classe FileStream

File binario con accesso diretto tramite la posizione del record (caso file non ordinato)

File binario ordinato con accesso diretto attraverso una chiave

File binario con indice

Inserimento nuovo record in file binario con indice

Esercizi sui file di testo in C#

ACCESSO AL DATABASE SQL SERVER

.NET Framework Data Provider per SQL Server

Connessione a SQL Server e creazione database con Visual Studio e SQL Management Studio

Lettura dati in SQL Server – SqlConnection, SqlCommand ed SqlDataReader

Esecuzione di comandi SQL con parametri – la classe SqlParameter

Esecuzione del comando di Update per aggiornare una riga del database SQL Server

Esecuzione del comando di Insert per inserire una nuova riga nel database SQL Server

Esecuzione del comando di Delete per eliminare una riga nel database SQL Server