Categories: C# (sharp)

Costruttore, Distruttore e Classi Parziali in C#

Nello scorso articolo abbiamo introdotto il concetto di classe in C# che è alla base della programmazione ad oggetti ed abbiamo anche fatto un esempio di implementazione della classe CPersona richiamata dalla funzione principale del programma. Classi particolarmente lunghe possono essere spezzate in più file di testo. Queste classi sono implementate con il modificatore partial, sta al compilatore successivamente riassemblare tutti i pezzi di una classe, ovviamente due o più pezzi della stessa classe devono avere lo stesso nome con il modificatore partial ed appartenere allo stesso assembly. Abbiamo visto la scorsa volta che per istanziare le classi occorre utilizzare l’operatore new, questo svolge diversi compiti: carica in memoria la struttura della classe e si occupa di allocare la memoria dinamica ( heap ricordate? ) per contenere le proprietà ( variabili ) e metodi ( funzioni ) della classe. Al momento della creazione però le proprietà sono state inserite, ma non inizializzate e per farlo occorreva richiamarle per dargli un valore, abbiamo per questo inserito public davanti ad ognuna. Se dovessimo impostarle private o protected, come deve essere, non potrei più accedervi dall’esterno alla classe. Provate a cambiare public in private e ve ne accorgerete avendo un errore. Si usa per questo motivo il costruttore della classe che deve avere lo stesso nome, ecco un esempio:

using System;

public class CPersona
{
   private string m_sNome;
   private string m_sCognome;

   public CPersona(string sNome, string sCognome)
   {
       m_sNome = sNome;
       m_sCognome = sCognome;
   }

   public void Stampa()
   {
       Console.WriteLine(m_sNome + " " + m_sCognome);
   }
}

public class Corso
{
   static void Main(string[] args)
   {
       CPersona pers = new CPersona("Giampaolo", "Rossi");
       pers.Stampa();

       Console.ReadKey();
   }
}

Come si vede dal codice di esempio il nome ed il cognome sono stati resi privati ed inizializzati tramite il costruttore public CPersona() … ed inoltre io ed altri programmatori utilizzano una m_ davanti al tipo della variabile per indicare che si tratta di una variabile membro della classe, quindi m_sNome è una variabile membro di una classe di tipo string. Ovviamente le funzioni membro della classe possono accedere alle variabili membro della classe anche se private. Il costruttore è una funzione ( metodo ) particolare che ha lo stesso nome della classe e non ha tipo di ritorno, viene richiamato al momento dell’istanziamento della classe con new. Come esiste il costruttore esiste anche il distruttore, che ha la stessa sintassi del primo, ma preceduto dalla tilde public ~CPersona() … In realtà il distruttore in C# ha molto meno importanza che in linguaggi come il C/C++ perché possiede il garbage collector ( raccolta dei rifiuti ) come il java, ecco come funziona. Ogni volta che la memoria RAM viene istanziata per accogliere una variabile o metodo o classe o altro, deve venir liberata quando il programma o la routine è terminata ed in C# questo processo è stato reso automatizzato e quindi non potete avere i classici memory leak del C/C++.

<< Lezione Precedente – Inizio CorsoIndice LezioniLezione Successiva >>

Share
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Published by
Giampaolo Rossi

Recent Posts

Un Abbonamento per Tutti i Software

Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…

10 mesi ago

Software di Magazzino Gratuito

MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→

11 mesi ago

Mettere il PC in Lock Screen

In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…

3 anni ago

Fare il reset togliendo la corrente

In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…

3 anni ago

Prossimi Aggiornamenti Software

Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…

3 anni ago

Come Eliminare i Files in Windows

Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→

3 anni ago