La Classe Base Object del C#

Quando definiamo una nuova classe nel linguaggio C# potremmo pensare che questa non derivi da nessuna classe base, in realtà non è così. Nella piattaforma .NET tutte le classi hanno un’origine comune, la classe Object che è definita nella libreria di base del .NET framework ( System.Object ) è la base per tutte le classi definite e quindi tutte le classi in C# presentano sempre questi metodi comuni che si possono implementare nelle nostre classi, perché sono metodi virtuali:

  • Equals() – Consente di verificare se due classi sono equivalenti.
  • GetHashCode() – Ritorna il valore hash dell’oggetto.
  • GetType() – Ritorna il tipo dell’oggetto.
  • ToString() – Ritorna una rappresentazione testuale dell’oggetto.
  • Finalize() – Ha il compito di rilasciare le risorse allocate non dipendenti dalla memoria per la quale abbiamo il garbage collector.
  • MemberwiseClone() – Clona l’oggetto e ritorna una copia speculare della classe.
  • ReferenceEquals() – Consente di verificare se due variabili riferimento puntano allo stesso oggetto.

Vediamo un esempio in cui trasformiamo un oggetto quadrato in testo:

using System;

class CQuad
{
   private int m_iLato;
   public CQuad(int iLato)
   {
       m_iLato = iLato;
   }

   public override string ToString()
   {
        return "Il quadrato ha il lato di " + m_iLato.ToString();
   }
}

public class Corso
{
   static void Main(string[] args)
   {
       CQuad cq = new CQuad(12);
       Console.WriteLine(cq.ToString());

       Console.ReadKey();
    }
}

L’esempio proposto è molto semplice, ma rappresenta bene quello che ho spiegato in questa lezione.

<< Lezione Precedente – Inizio CorsoIndice LezioniLezione Successiva >>

Di Giampaolo Rossi

Sviluppatore software da oltre 16 anni.