back to top

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 ottenere il nome del proprio pc? In C# è sufficiente una istruzione:

using System.Net;
using System;
class Esempio
{
    public static int Main (string [] args)
    {
        string strHostName = "";
        strHostName = Dns.GetHostName ();
        Console.WriteLine ("Local Machine's Host Name: " +  strHostName);
        return 0;
    }
}

Nell’esempio qui sopra abbiamo utilizzato la classe Dns del namespace System.Net, sfruttando il metodo GetHostName. Possiamo usare altri metodi per ottenere, ad esempio, anche gli indirizzi IP associati al nostro PC in questo modo:

string strHostName = "";
strHostName = Dns.GetHostName ();
IPHostEntry ipEntry = Dns.GetHostEntry (strHostName);
IPAddress [] addr = ipEntry.AddressList;

Attraverso il codice qui sopra otteniamo prima il nome macchina e, tramite esso, usiamo il metodo GetHostEntry per ottenere gli indirizzi IP che poi memorizziamo all’interno di un array IPAddress. Questi sono solo alcuni esempi, ci sono tante funzioni per la gestione delle reti e vi invito a scoprirle autonomamente.

Librerie per la gestione delle immagini

Vediamo ora un esempio di come sfruttare le librerie per la gestione delle immagini. Nel nostro esempio vedremo come creare un’immagine (prova.jpg) composta da un rettangolo bianco con una linea rossa:


using System;
using System.Drawing;
using System.Drawing.Imaging;

class Esempio
{
    public static int Main (string [] args)
    {
        SolidBrush b=new SolidBrush(System.Drawing.Color.White);
        Bitmap Bmp = new Bitmap(216,128);
        Graphics Gr = Graphics.FromImage(Bmp);
        Gr.FillRectangle(b,0,0,216,128);
        Gr.DrawLine(Pens.Red, 0, 0, 50, 50);
        Image Image1 = Bmp;
        Image1.Save("c:\prova.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
        return 0;
    }    
}

Per compilare l’esempio sopra dovete aggiungere i riferimenti in SharpDevelop come da immagine:

Gestire archivi compressi con C#

Un’altra classe interessante è quella per la gestione dei file compressi. Ci basterà usare using System.IO.Compression per leggere e zippare files usando la classe GZipStream.

using System;
using System.IO;
using System.IO.Compression;

class Esempio
{
    static void Main(string[] args)
    {
        string startPath = "c:esempiocartella";
        string zipPath = "c:esempioarchivio.zip";
        string extractPath = "c:esempiocartella2";

        // comprimo la cartella
        ZipFile.CreateFromDirectory(startPath, zipPath);

        // decomprimo la cartella
        ZipFile.ExtractToDirectory(zipPath, extractPath);
    }
}
PubblicitÃ